Class CleanerJava25
java.lang.Object
io.netty.util.internal.CleanerJava25
- All Implemented Interfaces:
Cleaner
Provide a way to clean direct
ByteBuffer instances on Java 24+,
where we don't have Unsafe available, but we have memory segments.
The FFM API is compiled against the netty-ffm-stub module, and only used from the nested CleanerJava25.Arenas
class, which is only loaded on Java versions that have the FFM API.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classprivate static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final InternalLoggerprivate static final boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionallocate(int capacity) Create a directByteBufferand return it alongside its cleaning mechanism, in aCleanableDirectBuffer.voidfreeDirectBuffer(java.nio.ByteBuffer buffer) Free a directByteBufferif possiblebooleanCheck if the clean operation is "relatively expensive".(package private) static booleanMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Cleaner
reallocate
-
Field Details
-
logger
-
SUPPORTED
private static final boolean SUPPORTED
-
-
Constructor Details
-
CleanerJava25
CleanerJava25()
-
-
Method Details
-
isSupported
static boolean isSupported() -
allocate
Description copied from interface:CleanerCreate a directByteBufferand return it alongside its cleaning mechanism, in aCleanableDirectBuffer.- Specified by:
allocatein interfaceCleaner- Parameters:
capacity- The desired capacity of the direct buffer.- Returns:
- The new
CleanableDirectBufferinstance.
-
freeDirectBuffer
public void freeDirectBuffer(java.nio.ByteBuffer buffer) Description copied from interface:CleanerFree a directByteBufferif possible- Specified by:
freeDirectBufferin interfaceCleaner
-
hasExpensiveClean
public boolean hasExpensiveClean()Description copied from interface:CleanerCheck if the clean operation is "relatively expensive". Expensive clean operations are fine for pooling allocators, but should be avoided for unpooled buffers.- Specified by:
hasExpensiveCleanin interfaceCleaner- Returns:
trueif this Cleaner has an expensive clean (i.e.CleanableDirectBuffer.clean()) operation.
-