Class NativeObjectCleaner<T>

java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.WeakReference<T>
org.graalvm.nativebridge.NativeObjectCleaner<T>

public abstract class NativeObjectCleaner<T> extends WeakReference<T>
A weak reference performing a given action when a referent becomes weakly reachable and is enqueued into reference queue. The class is not active. The reference queue check is performed anytime a new register() is called, or it can be performed explicitly using processPendingCleaners().
  • Constructor Details

    • NativeObjectCleaner

      protected NativeObjectCleaner(T referent, NativeIsolate isolate)
      Creates a new NativeObjectCleaner.
      Parameters:
      referent - object the new weak reference will refer to
      isolate - the native object isolate
  • Method Details

    • register

      public final NativeObjectCleaner<T> register()
      Registers NativeObjectCleaner for cleanup.
    • cleanUp

      protected abstract void cleanUp(long isolateThread)
      At some point after a referent is garbage collected the NativeIsolate is entered and the cleanUp(long) is executed with the isolate thread address parameter. This method should perform cleanup in the isolate heap.
      Parameters:
      isolateThread - the isolate thread address to call into isolate.
    • processPendingCleaners

      public static void processPendingCleaners()
      Performs an explicit clean up of enqueued NativeObjectCleaners.