final class com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper extends com.google.common.util.concurrent.AbstractFuture$AtomicHelper
{
private void <init>()
{
com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper v;
v := @this: com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper;
specialinvoke v.<com.google.common.util.concurrent.AbstractFuture$AtomicHelper: void <init>()>();
return;
}
void putThread(com.google.common.util.concurrent.AbstractFuture$Waiter, java.lang.Thread)
{
com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper v;
com.google.common.util.concurrent.AbstractFuture$Waiter v;
java.lang.Thread v;
v := @this: com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Waiter;
v := @parameter: java.lang.Thread;
v.<com.google.common.util.concurrent.AbstractFuture$Waiter: java.lang.Thread thread> = v;
return;
}
void putNext(com.google.common.util.concurrent.AbstractFuture$Waiter, com.google.common.util.concurrent.AbstractFuture$Waiter)
{
com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper v;
com.google.common.util.concurrent.AbstractFuture$Waiter v, v;
v := @this: com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Waiter;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Waiter;
v.<com.google.common.util.concurrent.AbstractFuture$Waiter: com.google.common.util.concurrent.AbstractFuture$Waiter next> = v;
return;
}
boolean casWaiters(com.google.common.util.concurrent.AbstractFuture, com.google.common.util.concurrent.AbstractFuture$Waiter, com.google.common.util.concurrent.AbstractFuture$Waiter)
{
java.lang.Throwable v;
com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper v;
com.google.common.util.concurrent.AbstractFuture$Waiter v, v, v;
com.google.common.util.concurrent.AbstractFuture v;
v := @this: com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper;
v := @parameter: com.google.common.util.concurrent.AbstractFuture;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Waiter;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Waiter;
entermonitor v;
label:
v = v.<com.google.common.util.concurrent.AbstractFuture: com.google.common.util.concurrent.AbstractFuture$Waiter waiters>;
if v != v goto label;
v.<com.google.common.util.concurrent.AbstractFuture: com.google.common.util.concurrent.AbstractFuture$Waiter waiters> = v;
exitmonitor v;
label:
return 1;
label:
exitmonitor v;
label:
return 0;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
boolean casListeners(com.google.common.util.concurrent.AbstractFuture, com.google.common.util.concurrent.AbstractFuture$Listener, com.google.common.util.concurrent.AbstractFuture$Listener)
{
java.lang.Throwable v;
com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper v;
com.google.common.util.concurrent.AbstractFuture$Listener v, v, v;
com.google.common.util.concurrent.AbstractFuture v;
v := @this: com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper;
v := @parameter: com.google.common.util.concurrent.AbstractFuture;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Listener;
v := @parameter: com.google.common.util.concurrent.AbstractFuture$Listener;
entermonitor v;
label:
v = v.<com.google.common.util.concurrent.AbstractFuture: com.google.common.util.concurrent.AbstractFuture$Listener listeners>;
if v != v goto label;
v.<com.google.common.util.concurrent.AbstractFuture: com.google.common.util.concurrent.AbstractFuture$Listener listeners> = v;
exitmonitor v;
label:
return 1;
label:
exitmonitor v;
label:
return 0;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
boolean casValue(com.google.common.util.concurrent.AbstractFuture, java.lang.Object, java.lang.Object)
{
java.lang.Throwable v;
com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper v;
java.lang.Object v, v, v;
com.google.common.util.concurrent.AbstractFuture v;
v := @this: com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper;
v := @parameter: com.google.common.util.concurrent.AbstractFuture;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
entermonitor v;
label:
v = v.<com.google.common.util.concurrent.AbstractFuture: java.lang.Object value>;
if v != v goto label;
v.<com.google.common.util.concurrent.AbstractFuture: java.lang.Object value> = v;
exitmonitor v;
label:
return 1;
label:
exitmonitor v;
label:
return 0;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
}