On Nov 5, 2013, at 8:26 AM, Peter Levart <peter.lev...@gmail.com> wrote: > > P.S. I'm curious about the strange seemingly unneeded code fragments in > FinalizerThread and both Runnables. For example: > > 169 forkSecondaryFinalizer(new Runnable() { > 170*private volatile boolean running;* > 171 public void run() { > 172*if (running)* > 173*return;* > 174*running = true;* > > The FinalizerThread and each Runnable instance is only executed once. Why > these checks then? Does anybody know? >
I was wondering that too. A Thread is an instance of Runnable. So a finalize method could re-exec the current finalizer thread on another another thread. Paul.