final class oadd.com.google.common.util.concurrent.AbstractFuture$Waiter extends java.lang.Object
{
static final oadd.com.google.common.util.concurrent.AbstractFuture$Waiter TOMBSTONE;
volatile java.lang.Thread thread;
volatile oadd.com.google.common.util.concurrent.AbstractFuture$Waiter next;
void <init>(boolean)
{
oadd.com.google.common.util.concurrent.AbstractFuture$Waiter v;
boolean v;
v := @this: oadd.com.google.common.util.concurrent.AbstractFuture$Waiter;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
void <init>()
{
oadd.com.google.common.util.concurrent.AbstractFuture$Waiter v;
oadd.com.google.common.util.concurrent.AbstractFuture$AtomicHelper v;
java.lang.Thread v;
v := @this: oadd.com.google.common.util.concurrent.AbstractFuture$Waiter;
specialinvoke v.<java.lang.Object: void <init>()>();
v = <oadd.com.google.common.util.concurrent.AbstractFuture: oadd.com.google.common.util.concurrent.AbstractFuture$AtomicHelper ATOMIC_HELPER>;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<oadd.com.google.common.util.concurrent.AbstractFuture$AtomicHelper: void putThread(oadd.com.google.common.util.concurrent.AbstractFuture$Waiter,java.lang.Thread)>(v, v);
return;
}
void setNext(oadd.com.google.common.util.concurrent.AbstractFuture$Waiter)
{
oadd.com.google.common.util.concurrent.AbstractFuture$Waiter v, v;
oadd.com.google.common.util.concurrent.AbstractFuture$AtomicHelper v;
v := @this: oadd.com.google.common.util.concurrent.AbstractFuture$Waiter;
v := @parameter: oadd.com.google.common.util.concurrent.AbstractFuture$Waiter;
v = <oadd.com.google.common.util.concurrent.AbstractFuture: oadd.com.google.common.util.concurrent.AbstractFuture$AtomicHelper ATOMIC_HELPER>;
virtualinvoke v.<oadd.com.google.common.util.concurrent.AbstractFuture$AtomicHelper: void putNext(oadd.com.google.common.util.concurrent.AbstractFuture$Waiter,oadd.com.google.common.util.concurrent.AbstractFuture$Waiter)>(v, v);
return;
}
void unpark()
{
oadd.com.google.common.util.concurrent.AbstractFuture$Waiter v;
java.lang.Thread v;
v := @this: oadd.com.google.common.util.concurrent.AbstractFuture$Waiter;
v = v.<oadd.com.google.common.util.concurrent.AbstractFuture$Waiter: java.lang.Thread thread>;
if v == null goto label;
v.<oadd.com.google.common.util.concurrent.AbstractFuture$Waiter: java.lang.Thread thread> = null;
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
label:
return;
}
static void <clinit>()
{
oadd.com.google.common.util.concurrent.AbstractFuture$Waiter v;
v = new oadd.com.google.common.util.concurrent.AbstractFuture$Waiter;
specialinvoke v.<oadd.com.google.common.util.concurrent.AbstractFuture$Waiter: void <init>(boolean)>(0);
<oadd.com.google.common.util.concurrent.AbstractFuture$Waiter: oadd.com.google.common.util.concurrent.AbstractFuture$Waiter TOMBSTONE> = v;
return;
}
}