private static void clean(DirectBuffer buffer) { final Cleaner cleaner = buffer.cleaner(); if (cleaner != null) { cleaner.clean(); } } }
@Override protected void release() { Cleaner cleaner = ((DirectBuffer) _buffer).cleaner(); if (cleaner != null) { cleaner.clean(); } } }
@Override public void close() throws IOException { sun.misc.Cleaner cl = ((sun.nio.ch.DirectBuffer) buff).cleaner(); if(cl != null) { cl.clean(); } }
private static void unmap(MappedByteBuffer bb) { Cleaner cl = ((DirectBuffer) bb).cleaner(); if (cl != null) cl.clean(); }
@Override public void close() { if (buffer == null) return; Cleaner cleaner = ((DirectBuffer) buffer).cleaner(); cleaner.clean(); } }
private void clean(final ByteBuffer buffer) { if (buffer == null || !buffer.isDirect() || buffer.capacity() == 0) { return; } final Cleaner cleaner = ((DirectBuffer) buffer).cleaner(); cleaner.clean(); }
public static void close(ByteBuffer buffer) { if (buffer == null || !buffer.isDirect() || buffer.capacity() == 0) { return; } try { final Cleaner cleaner = ((DirectBuffer) buffer).cleaner(); cleaner.clean(); } catch (Exception ignore) { } } }
public static void clean(MappedByteBuffer buffer) { ((DirectBuffer) buffer).cleaner().clean(); }
private void unmapFile() { if (byteBuffer != null) { if (JAVA9_INVOKE_CLEANER == null || THE_UNSAFE == null) { if (byteBuffer instanceof DirectBuffer) { // for Java 8 and before ((DirectBuffer) byteBuffer).cleaner().clean(); } } else { // for Java 9 and later: // sun.nio.ch.DirectBuffer methods are not accessible, // so the new sun.misc.Unsafe.theUnsafe.invokeCleaner(ByteBuffer) is used. // See https://bugs.openjdk.java.net/browse/JDK-8171377 try { JAVA9_INVOKE_CLEANER.invoke(THE_UNSAFE, byteBuffer); } catch (final Exception e) { throw new IllegalStateException(e); } } byteBuffer = null; } }
public void shutdown() { removeMonitoring(); writeQ.clear(); readQ.clear(); inputQueue.clear(); try { // Cleanup the ByteBuffers only if they are sun.nio.ch.DirectBuffer // If we don't cleanup then we will leak 16K of memory if (getRbuf() instanceof DirectBuffer) { Cleaner cleaner = ((DirectBuffer) getRbuf()).cleaner(); if (cleaner != null) cleaner.clean(); cleaner = ((DirectBuffer) getWbuf()).cleaner(); if (cleaner != null) cleaner.clean(); } } catch (Throwable t) { getLogger().error("Exception cleaning ByteBuffer.", t); } }
/*** Release a direct buffer. * * NOTE: If Cleaner is not accessible due to SecurityManager restrictions, reflection could be used to obtain the "clean" * method and then invoke it. */ static public void releaseBuffer (ByteBuffer niobuffer) { if (niobuffer != null && niobuffer.isDirect()) { Object cleaner = ((DirectBuffer)niobuffer).cleaner(); if (cleaner != null) ((Cleaner)cleaner).clean(); niobuffer = null; } } }
public static void free(ByteBuffer buffer) { if (buffer.isDirect()) { Cleaner cleaner = ((DirectBuffer) buffer).cleaner(); if (cleaner != null) { cleaner.clean(); } } } }
@Override public void close() throws IOException { // see http://stackoverflow.com/questions/2972986/how-to-unmap-a-file-from-memory-mapped-using-filechannel-in-java if (channel != null) { channel.close(); channel = null; } if (buf != null) { ((DirectBuffer) buf).cleaner().clean(); buf = null; } }
private void unmapBuffer(MappedByteBuffer b) { if(b!=null){ Cleaner cleaner = ((sun.nio.ch.DirectBuffer) b).cleaner(); if(cleaner!=null) cleaner.clean(); } }
public void unmapMmaped(ByteBuffer buffer) { if (buffer instanceof sun.nio.ch.DirectBuffer) { sun.misc.Cleaner cleaner = ((sun.nio.ch.DirectBuffer) buffer).cleaner(); cleaner.clean(); } }
public void setDiscarded() { for (Region region : offHeapRegions) ((DirectBuffer) region.data).cleaner().clean(); super.setDiscarded(); }
@Override public void free() { Cleaner cleaner = ((DirectBuffer) buffer).cleaner(); if (cleaner != null) cleaner.clean(); ((MappedMemoryAllocator) allocator).release(); }
public void setDiscarded() { for (Region region : offHeapRegions) ((DirectBuffer) region.data).cleaner().clean(); super.setDiscarded(); }
public void setDiscarded() { for (Region region : offHeapRegions) ((DirectBuffer) region.data).cleaner().clean(); super.setDiscarded(); }