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 -- */