home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / AWTFinalizer.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  1.3 KB  |  61 lines

  1. package sun.awt;
  2.  
  3. public class AWTFinalizer extends Thread {
  4.    static AWTFinalizer theFinalizer;
  5.    static AWTFinalizeable theFinalQueue;
  6.  
  7.    private AWTFinalizer() {
  8.       super("AWT-Finalizer");
  9.       SecurityManager.enablePrivilege("UniversalThreadAccess");
  10.       ((Thread)this).setPriority(9);
  11.       ((Thread)this).setDaemon(true);
  12.       SecurityManager.revertPrivilege();
  13.    }
  14.  
  15.    public void run() {
  16.       while(true) {
  17.          synchronized(this){}
  18.  
  19.          AWTFinalizeable var1;
  20.          try {
  21.             while((var1 = theFinalQueue) == null) {
  22.                try {
  23.                   this.wait();
  24.                } catch (InterruptedException var5) {
  25.                }
  26.             }
  27.  
  28.             theFinalQueue = null;
  29.          } catch (Throwable var6) {
  30.             throw var6;
  31.          }
  32.  
  33.          while(var1 != null) {
  34.             var1.doFinalization();
  35.             var1 = var1.getNextFinalizeable();
  36.          }
  37.       }
  38.    }
  39.  
  40.    public static void addFinalizeable(AWTFinalizeable var0) {
  41.       AWTFinalizer var1 = theFinalizer;
  42.       synchronized(var1){}
  43.  
  44.       try {
  45.          var0.setNextFinalizeable(theFinalQueue);
  46.          theFinalQueue = var0;
  47.          theFinalizer.notify();
  48.       } catch (Throwable var3) {
  49.          throw var3;
  50.       }
  51.  
  52.    }
  53.  
  54.    static {
  55.       SecurityManager.enablePrivilege("UniversalThreadGroupAccess");
  56.       theFinalizer = new AWTFinalizer();
  57.       SecurityManager.revertPrivilege();
  58.       theFinalizer.start();
  59.    }
  60. }
  61.