Top Description Inners Fields Constructors Methods
com.sun.jna.internal

public Class Cleaner

extends Object
Class Inheritance
Imports
java.lang.ref.PhantomReference, .Reference, .ReferenceQueue, java.util.logging.Level, .Logger

Implement ReferenceQueue based cleanup of resources associated with GCed objects. It replaces the Object#finalize based resource deallocation that is deprecated for removal from the JDK.

This class is intented to be used only be JNA itself.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static interface
private static class
private class

Field Summary

Modifier and TypeField and Description
private Thread
private Cleaner.CleanerRef
private static final Cleaner
private final ReferenceQueue<Object>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private synchronized Cleaner.CleanerRef
public static Cleaner
public synchronized Cleaner.Cleanable
register(Object obj, Runnable cleanupTask)

private synchronized boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

cleanerThreadback to summary
private Thread cleanerThread
firstCleanableback to summary
private Cleaner.CleanerRef firstCleanable
INSTANCEback to summary
private static final Cleaner INSTANCE
referenceQueueback to summary
private final ReferenceQueue<Object> referenceQueue

Constructor Detail

Cleanerback to summary
private Cleaner()

Method Detail

addback to summary
private synchronized Cleaner.CleanerRef add(Cleaner.CleanerRef ref)
getCleanerback to summary
public static Cleaner getCleaner()
registerback to summary
public synchronized Cleaner.Cleanable register(Object obj, Runnable cleanupTask)
removeback to summary
private synchronized boolean remove(Cleaner.CleanerRef ref)
com.sun.jna.internal back to summary

public Interface Cleaner.Cleanable

Known Direct Implementers
com.sun.jna.internal.Cleaner.CleanerRef

Method Summary

Modifier and TypeMethod and Description
public void

Method Detail

cleanback to summary
public void clean()
com.sun.jna.internal back to summary

private Class Cleaner.CleanerRef

extends PhantomReference<Object>
implements Cleanable
Class Inheritance
All Implemented Interfaces
com.sun.jna.internal.Cleaner.Cleanable

Field Summary

Modifier and TypeField and Description
private final Cleaner
private final Runnable
private Cleaner.CleanerRef
private Cleaner.CleanerRef

Constructor Summary

AccessConstructor and Description
public
CleanerRef(Cleaner cleaner, Object referent, ReferenceQueue<? super Object> q, Runnable cleanupTask)

Method Summary

Modifier and TypeMethod and Description
public void
pack-priv Cleaner.CleanerRef
pack-priv Cleaner.CleanerRef
pack-priv void
pack-priv void
Inherited from java.lang.ref.PhantomReference:
get

Field Detail

cleanerback to summary
private final Cleaner cleaner
cleanupTaskback to summary
private final Runnable cleanupTask
nextback to summary
private Cleaner.CleanerRef next

Hides java.lang.ref.Reference.next.

previousback to summary
private Cleaner.CleanerRef previous

Constructor Detail

CleanerRefback to summary
public CleanerRef(Cleaner cleaner, Object referent, ReferenceQueue<? super Object> q, Runnable cleanupTask)

Method Detail

cleanback to summary
public void clean()

Implements com.sun.jna.internal.Cleaner.Cleanable.clean.

Annotations
@Override
getNextback to summary
pack-priv Cleaner.CleanerRef getNext()
getPreviousback to summary
pack-priv Cleaner.CleanerRef getPrevious()
setNextback to summary
pack-priv void setNext(Cleaner.CleanerRef next)
setPreviousback to summary
pack-priv void setPrevious(Cleaner.CleanerRef previous)
com.sun.jna.internal back to summary

private Class Cleaner.CleanerThread

extends Thread
Class Inheritance

Field Summary

Modifier and TypeField and Description
private static final long
Inherited from java.lang.Thread:
MAX_PRIORITYMIN_PRIORITYNORM_PRIORITY

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
run()

Overrides java.lang.Thread.run.

Implements java.lang.Runnable.run.

This method is run by the thread when it executes.
Inherited from java.lang.Thread:
activeCountcheckAccessclonecountStackFramescurrentThreaddumpStackenumerategetAllStackTracesgetContextClassLoadergetDefaultUncaughtExceptionHandlergetIdgetNamegetPrioritygetStackTracegetStategetThreadGroupgetUncaughtExceptionHandlerholdsLockinterruptinterruptedisAliveisDaemonisInterruptedisVirtualjoinjoinjoinjoinofPlatformofVirtualonSpinWaitresumesetContextClassLoadersetDaemonsetDefaultUncaughtExceptionHandlersetNamesetPrioritysetUncaughtExceptionHandlersleepsleepsleepstartstartVirtualThreadstopsuspendthreadIdtoStringyield

Field Detail

CLEANER_LINGER_TIMEback to summary
private static final long CLEANER_LINGER_TIME

Constructor Detail

CleanerThreadback to summary
public CleanerThread()

Method Detail

runback to summary
public void run()

Overrides java.lang.Thread.run.

Implements java.lang.Runnable.run.

Doc from java.lang.Thread.run.

This method is run by the thread when it executes. Subclasses of Thread may override this method.

This method is not intended to be invoked directly. If this thread is a platform thread created with a Runnable task then invoking this method will invoke the task's run method. If this thread is a virtual thread then invoking this method directly does nothing.

Annotations
@Override