Class CleanerJava25

java.lang.Object
io.netty.util.internal.CleanerJava25
All Implemented Interfaces:
Cleaner

final class CleanerJava25 extends java.lang.Object implements 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 Classes
    Modifier and Type
    Class
    Description
    private static final class 
     
    private static final class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final InternalLogger
     
    private static final boolean
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    allocate(int capacity)
    Create a direct ByteBuffer and return it alongside its cleaning mechanism, in a CleanableDirectBuffer.
    void
    freeDirectBuffer(java.nio.ByteBuffer buffer)
    Free a direct ByteBuffer if possible
    boolean
    Check if the clean operation is "relatively expensive".
    (package private) static boolean
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface Cleaner

    reallocate
  • Field Details

    • logger

      private static final InternalLogger logger
    • SUPPORTED

      private static final boolean SUPPORTED
  • Constructor Details

    • CleanerJava25

      CleanerJava25()
  • Method Details

    • isSupported

      static boolean isSupported()
    • allocate

      public CleanableDirectBuffer allocate(int capacity)
      Description copied from interface: Cleaner
      Create a direct ByteBuffer and return it alongside its cleaning mechanism, in a CleanableDirectBuffer.
      Specified by:
      allocate in interface Cleaner
      Parameters:
      capacity - The desired capacity of the direct buffer.
      Returns:
      The new CleanableDirectBuffer instance.
    • freeDirectBuffer

      public void freeDirectBuffer(java.nio.ByteBuffer buffer)
      Description copied from interface: Cleaner
      Free a direct ByteBuffer if possible
      Specified by:
      freeDirectBuffer in interface Cleaner
    • hasExpensiveClean

      public boolean hasExpensiveClean()
      Description copied from interface: Cleaner
      Check if the clean operation is "relatively expensive". Expensive clean operations are fine for pooling allocators, but should be avoided for unpooled buffers.
      Specified by:
      hasExpensiveClean in interface Cleaner
      Returns:
      true if this Cleaner has an expensive clean (i.e. CleanableDirectBuffer.clean()) operation.