src/java.base/share/classes/java/lang/ref/Finalizer.java

Print this page

        

*** 27,37 **** import java.security.PrivilegedAction; import java.security.AccessController; import jdk.internal.misc.JavaLangAccess; import jdk.internal.misc.SharedSecrets; - import sun.misc.ManagedLocalsThread; import sun.misc.VM; final class Finalizer extends FinalReference<Object> { /* Package-private; must be in same package as the Reference class */ --- 27,36 ----
*** 129,139 **** public Void run() { ThreadGroup tg = Thread.currentThread().getThreadGroup(); for (ThreadGroup tgn = tg; tgn != null; tg = tgn, tgn = tg.getParent()); ! Thread sft = new ManagedLocalsThread(tg, proc, "Secondary finalizer"); sft.start(); try { sft.join(); } catch (InterruptedException x) { Thread.currentThread().interrupt(); --- 128,138 ---- public Void run() { ThreadGroup tg = Thread.currentThread().getThreadGroup(); for (ThreadGroup tgn = tg; tgn != null; tg = tgn, tgn = tg.getParent()); ! Thread sft = new Thread(tg, proc, "Secondary finalizer", 0, false); sft.start(); try { sft.join(); } catch (InterruptedException x) { Thread.currentThread().interrupt();
*** 188,201 **** } f.runFinalizer(jla); }}}); } ! private static class FinalizerThread extends ManagedLocalsThread { private volatile boolean running; FinalizerThread(ThreadGroup g) { ! super(g, "Finalizer"); } public void run() { // in case of recursive call to run() if (running) return; --- 187,200 ---- } f.runFinalizer(jla); }}}); } ! private static class FinalizerThread extends Thread { private volatile boolean running; FinalizerThread(ThreadGroup g) { ! super(g, null, "Finalizer", 0, false); } public void run() { // in case of recursive call to run() if (running) return;