de.intarsys.tools.resourcetracker
Class ResourceFinalizer

java.lang.Object
  extended by java.lang.Thread
      extended by de.intarsys.tools.resourcetracker.ResourceFinalizer
All Implemented Interfaces:
java.lang.Runnable

public class ResourceFinalizer
extends java.lang.Thread

A thread for monitoring a reference queue.

This monitor is decoupled from the ResourceTracker instance to allow for heterogenous resources to be tracked in a single thread.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ResourceFinalizer()
           
 
Method Summary
protected  void drainQueue()
           
protected  void ensureStarted()
           
static ResourceFinalizer get()
           
 java.lang.ref.ReferenceQueue getQueue()
           
 void run()
           
 void start()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ResourceFinalizer

public ResourceFinalizer()
Method Detail

get

public static ResourceFinalizer get()

drainQueue

protected void drainQueue()

ensureStarted

protected void ensureStarted()

getQueue

public java.lang.ref.ReferenceQueue getQueue()

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

start

public void start()
Overrides:
start in class java.lang.Thread