]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/gnu/gcj/runtime/FinalizerThread.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / gnu / gcj / runtime / FinalizerThread.java
diff --git a/libjava/gnu/gcj/runtime/FinalizerThread.java b/libjava/gnu/gcj/runtime/FinalizerThread.java
deleted file mode 100644 (file)
index e333d7a..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-// FinalizerThread.java -- Thread in which finalizers are run.
-
-/* Copyright (C) 2001  Free Software Foundation
-
-   This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
-details.  */
-
-package gnu.gcj.runtime;
-
-/**
- * @author Tom Tromey <tromey@redhat.com>
- * @date October 3, 2001
- */
-public final class FinalizerThread extends Thread
-{
-  // Finalizers must be run in a thread with no Java-visible locks
-  // held.  This qualifies because we don't make the lock visible.
-  private static final Object lock = new Object ();
-
-  // This is true if the finalizer thread started successfully.  It
-  // might be false if, for instance, there are no threads on the
-  // current platform.  In this situation we run finalizers in the
-  // caller's thread.
-  private static boolean thread_started = false;
-
-  public FinalizerThread ()
-  {
-    super ("LibgcjInternalFinalizerThread");
-    setDaemon (true);
-  }
-
-  // This is called by the runtime when a finalizer is ready to be
-  // run.  It simply wakes up the finalizer thread.
-  public static void finalizerReady ()
-  {
-    synchronized (lock)
-      {
-       if (! thread_started)
-         runFinalizers ();
-       else
-         lock.notify ();
-      }
-  }
-
-  // Actually run the finalizers.
-  private static native void runFinalizers ();
-
-  public void run ()
-  {
-    // Wait on a lock.  Whenever we wake up, try to invoke the
-    // finalizers.
-    synchronized (lock)
-      {
-       thread_started = true;
-       while (true)
-         {
-           try
-             {
-               lock.wait ();
-             }
-           catch (InterruptedException _)
-             {
-               // Just ignore it.  It doesn't hurt to run finalizers
-               // when none are pending.
-             }
-           runFinalizers ();
-         }
-      }
-  }
-}