home *** CD-ROM | disk | FTP | other *** search
- package java.lang.ref;
-
- public abstract class Reference {
- private Object referent;
- ReferenceQueue queue;
- Reference next;
- private static Lock lock = new Lock((1)null);
- private static Reference pending = null;
-
- public Object get() {
- return this.referent;
- }
-
- public void clear() {
- this.referent = null;
- }
-
- public boolean isEnqueued() {
- synchronized(this) {
- boolean var2 = this.queue != ReferenceQueue.NULL && this.next != null;
- return var2;
- }
- }
-
- public boolean enqueue() {
- return this.queue.enqueue(this);
- }
-
- Reference(Object var1) {
- this(var1, (ReferenceQueue)null);
- }
-
- Reference(Object var1, ReferenceQueue var2) {
- this.referent = var1;
- if (var1 == null) {
- this.queue = ReferenceQueue.NULL;
- this.next = this;
- } else {
- this.queue = var2 == null ? ReferenceQueue.NULL : var2;
- this.next = null;
- }
-
- }
-
- // $FF: synthetic method
- static Lock access$100() {
- return lock;
- }
-
- // $FF: synthetic method
- static Reference access$200() {
- return pending;
- }
-
- // $FF: synthetic method
- static Reference access$202(Reference var0) {
- pending = var0;
- return var0;
- }
-
- static {
- ThreadGroup var0 = Thread.currentThread().getThreadGroup();
-
- for(ThreadGroup var1 = var0; var1 != null; var1 = var1.getParent()) {
- var0 = var1;
- }
-
- ReferenceHandler var2 = new ReferenceHandler(var0, "Reference Handler");
- ((Thread)var2).setPriority(10);
- ((Thread)var2).setDaemon(true);
- ((Thread)var2).start();
- }
- }
-