@Override public void closeAndDelete() throws IOException { reader.closeAndDelete(); } }
private void forceDispose(List<MemorySegment> freeMemTarget) throws InterruptedException { // add the current segment final MemorySegment current = getCurrentSegment(); clear(); if (current != null) { freeMemTarget.add(current); } // add all remaining memory freeMemTarget.addAll(fullBufferSource); // add the segments with the requests issued but not returned for (int i = spilledBuffersRemaining - requestsRemaining; i > 0; --i) { freeMemTarget.add(emptyBufferTarget.take()); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } } }
private void forceDispose(List<MemorySegment> freeMemTarget) throws InterruptedException { // add the current segment final MemorySegment current = getCurrentSegment(); clear(); if (current != null) { freeMemTarget.add(current); } // add all remaining memory freeMemTarget.addAll(fullBufferSource); // add the segments with the requests issued but not returned for (int i = spilledBuffersRemaining - requestsRemaining; i > 0; --i) { freeMemTarget.add(emptyBufferTarget.take()); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } } }
private void forceDispose(List<MemorySegment> freeMemTarget) throws InterruptedException { // add the current segment final MemorySegment current = getCurrentSegment(); clear(); if (current != null) { freeMemTarget.add(current); } // add all remaining memory freeMemTarget.addAll(fullBufferSource); // add the segments with the requests issued but not returned for (int i = spilledBuffersRemaining - requestsRemaining; i > 0; --i) { freeMemTarget.add(emptyBufferTarget.take()); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } } }
private void forceDispose(List<MemorySegment> freeMemTarget) throws InterruptedException { // add the current segment final MemorySegment current = getCurrentSegment(); clear(); if (current != null) { freeMemTarget.add(current); } // add all remaining memory freeMemTarget.addAll(fullBufferSource); // add the segments with the requests issued but not returned for (int i = spilledBuffersRemaining - requestsRemaining; i > 0; --i) { freeMemTarget.add(emptyBufferTarget.take()); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } } }
protected List<MemorySegment> readAllBuffers(FileIOChannel.ID id, int blockCount) throws IOException { // we are guaranteed to stay in memory ensureNumBuffersReturned(blockCount); LinkedBlockingQueue<MemorySegment> retSegments = new LinkedBlockingQueue<>(); BlockChannelReader<MemorySegment> reader = FileChannelUtil.createBlockChannelReader( ioManager, id, retSegments, compressionEnable, compressionCodecFactory, compressionBlockSize, segmentSize); for (int i = 0; i < blockCount; i++) { reader.readBlock(availableMemory.remove(availableMemory.size() - 1)); } reader.closeAndDelete(); final List<MemorySegment> buffers = new ArrayList<>(); retSegments.drainTo(buffers); return buffers; }
@Override protected MemorySegment nextSegment(MemorySegment current) throws IOException { // use the buffer to send the next request if (requestsRemaining > 0) { requestsRemaining--; spilledBufferSource.readBlock(current); } else { emptyBufferTarget.add(current); } // get the next buffer either from the return queue, or the full buffer source if (spilledBuffersRemaining > 0) { spilledBuffersRemaining--; try { return spilledBufferSource.getReturnQueue().take(); } catch (InterruptedException e) { throw new RuntimeException("Read End was interrupted while waiting for spilled buffer.", e); } } else if (fullBufferSource.size() > 0) { return fullBufferSource.removeFirst(); } else { clear(); // delete the channel, if we had one if (spilledBufferSource != null) { spilledBufferSource.closeAndDelete(); } throw new EOFException(); } }
@Override protected MemorySegment nextSegment(MemorySegment current) throws IOException { // use the buffer to send the next request if (requestsRemaining > 0) { requestsRemaining--; spilledBufferSource.readBlock(current); } else { emptyBufferTarget.add(current); } // get the next buffer either from the return queue, or the full buffer source if (spilledBuffersRemaining > 0) { spilledBuffersRemaining--; try { return spilledBufferSource.getReturnQueue().take(); } catch (InterruptedException e) { throw new RuntimeException("Read End was interrupted while waiting for spilled buffer.", e); } } else if (fullBufferSource.size() > 0) { return fullBufferSource.removeFirst(); } else { clear(); // delete the channel, if we had one if (spilledBufferSource != null) { spilledBufferSource.closeAndDelete(); } throw new EOFException(); } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private void close(boolean deleteFile) throws IOException { try { clear(); if (deleteFile) { reader.closeAndDelete(); } else { reader.close(); } } finally { synchronized (memory) { memManager.release(memory); memory.clear(); } } }
private boolean disposeIfDone() { if (fullBufferSource.isEmpty() && spilledBuffersRemaining == 0) { if (getCurrentSegment() == null || getCurrentPositionInSegment() >= getCurrentSegmentLimit()) { if (getCurrentSegment() != null) { emptyBufferTarget.add(getCurrentSegment()); clear(); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } return true; } } return false; }
private boolean disposeIfDone() { if (fullBufferSource.isEmpty() && spilledBuffersRemaining == 0) { if (getCurrentSegment() == null || getCurrentPositionInSegment() >= getCurrentSegmentLimit()) { if (getCurrentSegment() != null) { emptyBufferTarget.add(getCurrentSegment()); clear(); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } return true; } } return false; }
private boolean disposeIfDone() { if (fullBufferSource.isEmpty() && spilledBuffersRemaining == 0) { if (getCurrentSegment() == null || getCurrentPositionInSegment() >= getCurrentSegmentLimit()) { if (getCurrentSegment() != null) { emptyBufferTarget.add(getCurrentSegment()); clear(); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } return true; } } return false; }
private boolean disposeIfDone() { if (fullBufferSource.isEmpty() && spilledBuffersRemaining == 0) { if (getCurrentSegment() == null || getCurrentPositionInSegment() >= getCurrentSegmentLimit()) { if (getCurrentSegment() != null) { emptyBufferTarget.add(getCurrentSegment()); clear(); } if (spilledBufferSource != null) { try { spilledBufferSource.closeAndDelete(); } catch (Throwable t) { // do nothing } } return true; } } return false; }