APIdia Launch Partner
Top Inners Fields Constructors Methods
java.lang.ref

pack-priv final Class Finalizer

extends FinalReference<Object>
Class Inheritance
Imports
jdk.internal.access.JavaLangAccess, .SharedSecrets, jdk.internal.misc.VM

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Field Summary

Modifier and TypeField and Description
pack-priv static final boolean
private static final Object
lock

Lock guarding access to unfinalized list.

private Finalizer
private Finalizer
private static ReferenceQueue<Object>
private static Finalizer
unfinalized

Head of doubly linked list of Finalizers awaiting finalization.

Constructor Summary

AccessConstructor and Description
private
Finalizer(Object finalizee)

Method Summary

Modifier and TypeMethod and Description
private static void
pack-priv static ReferenceQueue<Object>
private static native boolean
pack-priv static void
register(Object finalizee)

private static native void
pack-priv static void
private void
pack-priv static void
startFinalizerThread(ThreadGroup tg)

Start the Finalizer thread as a daemon thread.

Inherited from java.lang.ref.FinalReference:
clearenqueueget

Field Detail

ENABLEDback to summary
pack-priv static final boolean ENABLED
lockback to summary
private static final Object lock

Lock guarding access to unfinalized list.

nextback to summary
private Finalizer next

Hides java.lang.ref.Reference.next.

prevback to summary
private Finalizer prev
queueback to summary
private static ReferenceQueue<Object> queue

Hides java.lang.ref.Reference.queue.

unfinalizedback to summary
private static Finalizer unfinalized

Head of doubly linked list of Finalizers awaiting finalization.

Constructor Detail

Finalizerback to summary
private Finalizer(Object finalizee)

Method Detail

forkSecondaryFinalizerback to summary
private static void forkSecondaryFinalizer(final Runnable proc)
getQueueback to summary
pack-priv static ReferenceQueue<Object> getQueue()
isFinalizationEnabledback to summary
private static native boolean isFinalizationEnabled()
registerback to summary
pack-priv static void register(Object finalizee)
reportCompleteback to summary
private static native void reportComplete(Object finalizee)
runFinalizationback to summary
pack-priv static void runFinalization()
runFinalizerback to summary
private void runFinalizer(JavaLangAccess jla)
startFinalizerThreadback to summary
pack-priv static void startFinalizerThread(ThreadGroup tg)

Start the Finalizer thread as a daemon thread.

java.lang.ref back to summary

private Class Finalizer.FinalizerThread

extends Thread
Class Inheritance

Field Summary

Modifier and TypeField and Description
private volatile boolean
Inherited from java.lang.Thread:
MAX_PRIORITYMIN_PRIORITYNORM_PRIORITY

Constructor Summary

AccessConstructor and Description
pack-priv

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:
activeCountcheckAccessclonecurrentThreaddumpStackenumerategetAllStackTracesgetContextClassLoadergetDefaultUncaughtExceptionHandlergetIdgetNamegetPrioritygetStackTracegetStategetThreadGroupgetUncaughtExceptionHandlerholdsLockinterruptinterruptedisAliveisDaemonisInterruptedisVirtualjoinjoinjoinjoinofPlatformofVirtualonSpinWaitsetContextClassLoadersetDaemonsetDefaultUncaughtExceptionHandlersetNamesetPrioritysetUncaughtExceptionHandlersleepsleepsleepstartstartVirtualThreadthreadIdtoStringyield

Field Detail

runningback to summary
private volatile boolean running

Constructor Detail

FinalizerThreadback to summary
pack-priv FinalizerThread(ThreadGroup g)

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.