emul/compact/src/main/java/java/lang/ref/Reference.java
branchemul
changeset 604 3fcc279c921b
parent 601 5198affdb915
     1.1 --- a/emul/compact/src/main/java/java/lang/ref/Reference.java	Mon Jan 28 18:12:47 2013 +0100
     1.2 +++ b/emul/compact/src/main/java/java/lang/ref/Reference.java	Mon Jan 28 18:15:21 2013 +0100
     1.3 @@ -25,8 +25,6 @@
     1.4  
     1.5  package java.lang.ref;
     1.6  
     1.7 -import sun.misc.Cleaner;
     1.8 -
     1.9  
    1.10  /**
    1.11   * Abstract base class for reference objects.  This class defines the
    1.12 @@ -110,57 +108,6 @@
    1.13       */
    1.14      private static Reference pending = null;
    1.15  
    1.16 -    /* High-priority thread to enqueue pending References
    1.17 -     */
    1.18 -    private static class ReferenceHandler extends Thread {
    1.19 -
    1.20 -        ReferenceHandler(ThreadGroup g, String name) {
    1.21 -            super(g, name);
    1.22 -        }
    1.23 -
    1.24 -        public void run() {
    1.25 -            for (;;) {
    1.26 -
    1.27 -                Reference r;
    1.28 -                synchronized (lock) {
    1.29 -                    if (pending != null) {
    1.30 -                        r = pending;
    1.31 -                        Reference rn = r.next;
    1.32 -                        pending = (rn == r) ? null : rn;
    1.33 -                        r.next = r;
    1.34 -                    } else {
    1.35 -                        try {
    1.36 -                            lock.wait();
    1.37 -                        } catch (InterruptedException x) { }
    1.38 -                        continue;
    1.39 -                    }
    1.40 -                }
    1.41 -
    1.42 -                // Fast path for cleaners
    1.43 -                if (r instanceof Cleaner) {
    1.44 -                    ((Cleaner)r).clean();
    1.45 -                    continue;
    1.46 -                }
    1.47 -
    1.48 -                ReferenceQueue q = r.queue;
    1.49 -                if (q != ReferenceQueue.NULL) q.enqueue(r);
    1.50 -            }
    1.51 -        }
    1.52 -    }
    1.53 -
    1.54 -    static {
    1.55 -        ThreadGroup tg = Thread.currentThread().getThreadGroup();
    1.56 -        for (ThreadGroup tgn = tg;
    1.57 -             tgn != null;
    1.58 -             tg = tgn, tgn = tg.getParent());
    1.59 -        Thread handler = new ReferenceHandler(tg, "Reference Handler");
    1.60 -        /* If there were a special system-only priority greater than
    1.61 -         * MAX_PRIORITY, it would be used here
    1.62 -         */
    1.63 -        handler.setPriority(Thread.MAX_PRIORITY);
    1.64 -        handler.setDaemon(true);
    1.65 -        handler.start();
    1.66 -    }
    1.67  
    1.68  
    1.69      /* -- Referent accessor and setters -- */