public final class com.google.common.util.concurrent.ExecutionSequencer extends java.lang.Object
{
private final java.util.concurrent.atomic.AtomicReference ref;
private com.google.common.util.concurrent.ExecutionSequencer$ThreadConfinedTaskQueue latestTaskQueue;
private void <init>()
{
com.google.common.util.concurrent.ExecutionSequencer$ThreadConfinedTaskQueue v;
com.google.common.util.concurrent.ListenableFuture v;
com.google.common.util.concurrent.ExecutionSequencer v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: com.google.common.util.concurrent.ExecutionSequencer;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
v = staticinvoke <com.google.common.util.concurrent.Futures: com.google.common.util.concurrent.ListenableFuture immediateVoidFuture()>();
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<com.google.common.util.concurrent.ExecutionSequencer: java.util.concurrent.atomic.AtomicReference ref> = v;
v = new com.google.common.util.concurrent.ExecutionSequencer$ThreadConfinedTaskQueue;
specialinvoke v.<com.google.common.util.concurrent.ExecutionSequencer$ThreadConfinedTaskQueue: void <init>()>();
v.<com.google.common.util.concurrent.ExecutionSequencer: com.google.common.util.concurrent.ExecutionSequencer$ThreadConfinedTaskQueue latestTaskQueue> = v;
return;
}
public static com.google.common.util.concurrent.ExecutionSequencer create()
{
com.google.common.util.concurrent.ExecutionSequencer v;
v = new com.google.common.util.concurrent.ExecutionSequencer;
specialinvoke v.<com.google.common.util.concurrent.ExecutionSequencer: void <init>()>();
return v;
}
public com.google.common.util.concurrent.ListenableFuture submit(java.util.concurrent.Callable, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ExecutionSequencer$1 v;
com.google.common.util.concurrent.ListenableFuture v;
java.util.concurrent.Executor v;
java.util.concurrent.Callable v;
com.google.common.util.concurrent.ExecutionSequencer v;
v := @this: com.google.common.util.concurrent.ExecutionSequencer;
v := @parameter: java.util.concurrent.Callable;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ExecutionSequencer$1;
specialinvoke v.<com.google.common.util.concurrent.ExecutionSequencer$1: void <init>(com.google.common.util.concurrent.ExecutionSequencer,java.util.concurrent.Callable)>(v, v);
v = virtualinvoke v.<com.google.common.util.concurrent.ExecutionSequencer: com.google.common.util.concurrent.ListenableFuture submitAsync(com.google.common.util.concurrent.AsyncCallable,java.util.concurrent.Executor)>(v, v);
return v;
}
public com.google.common.util.concurrent.ListenableFuture submitAsync(com.google.common.util.concurrent.AsyncCallable, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ListenableFuture v;
java.util.concurrent.Executor v, v, v;
com.google.common.util.concurrent.SettableFuture v;
java.util.concurrent.atomic.AtomicReference v;
com.google.common.util.concurrent.AsyncCallable v;
com.google.common.util.concurrent.ExecutionSequencer$2 v;
com.google.common.util.concurrent.ExecutionSequencer$3 v;
com.google.common.util.concurrent.TrustedListenableFutureTask v;
java.lang.Object v;
com.google.common.util.concurrent.ExecutionSequencer v;
com.google.common.util.concurrent.ExecutionSequencer$TaskNonReentrantExecutor v;
v := @this: com.google.common.util.concurrent.ExecutionSequencer;
v := @parameter: com.google.common.util.concurrent.AsyncCallable;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ExecutionSequencer$TaskNonReentrantExecutor;
specialinvoke v.<com.google.common.util.concurrent.ExecutionSequencer$TaskNonReentrantExecutor: void <init>(java.util.concurrent.Executor,com.google.common.util.concurrent.ExecutionSequencer)>(v, v);
v = new com.google.common.util.concurrent.ExecutionSequencer$2;
specialinvoke v.<com.google.common.util.concurrent.ExecutionSequencer$2: void <init>(com.google.common.util.concurrent.ExecutionSequencer,com.google.common.util.concurrent.ExecutionSequencer$TaskNonReentrantExecutor,com.google.common.util.concurrent.AsyncCallable)>(v, v, v);
v = staticinvoke <com.google.common.util.concurrent.SettableFuture: com.google.common.util.concurrent.SettableFuture create()>();
v = v.<com.google.common.util.concurrent.ExecutionSequencer: java.util.concurrent.atomic.AtomicReference ref>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object getAndSet(java.lang.Object)>(v);
v = staticinvoke <com.google.common.util.concurrent.TrustedListenableFutureTask: com.google.common.util.concurrent.TrustedListenableFutureTask create(com.google.common.util.concurrent.AsyncCallable)>(v);
interfaceinvoke v.<com.google.common.util.concurrent.ListenableFuture: void addListener(java.lang.Runnable,java.util.concurrent.Executor)>(v, v);
v = staticinvoke <com.google.common.util.concurrent.Futures: com.google.common.util.concurrent.ListenableFuture nonCancellationPropagating(com.google.common.util.concurrent.ListenableFuture)>(v);
v = new com.google.common.util.concurrent.ExecutionSequencer$3;
specialinvoke v.<com.google.common.util.concurrent.ExecutionSequencer$3: void <init>(com.google.common.util.concurrent.ExecutionSequencer,com.google.common.util.concurrent.TrustedListenableFutureTask,com.google.common.util.concurrent.SettableFuture,com.google.common.util.concurrent.ListenableFuture,com.google.common.util.concurrent.ListenableFuture,com.google.common.util.concurrent.ExecutionSequencer$TaskNonReentrantExecutor)>(v, v, v, v, v, v);
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
interfaceinvoke v.<com.google.common.util.concurrent.ListenableFuture: void addListener(java.lang.Runnable,java.util.concurrent.Executor)>(v, v);
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
virtualinvoke v.<com.google.common.util.concurrent.TrustedListenableFutureTask: void addListener(java.lang.Runnable,java.util.concurrent.Executor)>(v, v);
return v;
}
}