final class com.google.common.util.concurrent.CombinedFuture extends com.google.common.util.concurrent.AggregateFuture
{
private com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask task;
void <init>(com.google.common.collect.ImmutableCollection, boolean, java.util.concurrent.Executor, com.google.common.util.concurrent.AsyncCallable)
{
com.google.common.util.concurrent.CombinedFuture v;
java.util.concurrent.Executor v;
com.google.common.util.concurrent.CombinedFuture$AsyncCallableInterruptibleTask v;
com.google.common.collect.ImmutableCollection v;
boolean v;
com.google.common.util.concurrent.AsyncCallable v;
v := @this: com.google.common.util.concurrent.CombinedFuture;
v := @parameter: com.google.common.collect.ImmutableCollection;
v := @parameter: boolean;
v := @parameter: java.util.concurrent.Executor;
v := @parameter: com.google.common.util.concurrent.AsyncCallable;
specialinvoke v.<com.google.common.util.concurrent.AggregateFuture: void <init>(com.google.common.collect.ImmutableCollection,boolean,boolean)>(v, v, 0);
v = new com.google.common.util.concurrent.CombinedFuture$AsyncCallableInterruptibleTask;
specialinvoke v.<com.google.common.util.concurrent.CombinedFuture$AsyncCallableInterruptibleTask: void <init>(com.google.common.util.concurrent.CombinedFuture,com.google.common.util.concurrent.AsyncCallable,java.util.concurrent.Executor)>(v, v, v);
v.<com.google.common.util.concurrent.CombinedFuture: com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask task> = v;
virtualinvoke v.<com.google.common.util.concurrent.CombinedFuture: void init()>();
return;
}
void <init>(com.google.common.collect.ImmutableCollection, boolean, java.util.concurrent.Executor, java.util.concurrent.Callable)
{
com.google.common.util.concurrent.CombinedFuture v;
java.util.concurrent.Executor v;
com.google.common.collect.ImmutableCollection v;
com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask v;
java.util.concurrent.Callable v;
boolean v;
v := @this: com.google.common.util.concurrent.CombinedFuture;
v := @parameter: com.google.common.collect.ImmutableCollection;
v := @parameter: boolean;
v := @parameter: java.util.concurrent.Executor;
v := @parameter: java.util.concurrent.Callable;
specialinvoke v.<com.google.common.util.concurrent.AggregateFuture: void <init>(com.google.common.collect.ImmutableCollection,boolean,boolean)>(v, v, 0);
v = new com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask;
specialinvoke v.<com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask: void <init>(com.google.common.util.concurrent.CombinedFuture,java.util.concurrent.Callable,java.util.concurrent.Executor)>(v, v, v);
v.<com.google.common.util.concurrent.CombinedFuture: com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask task> = v;
virtualinvoke v.<com.google.common.util.concurrent.CombinedFuture: void init()>();
return;
}
void collectOneValue(int, java.lang.Object)
{
int v;
com.google.common.util.concurrent.CombinedFuture v;
java.lang.Object v;
v := @this: com.google.common.util.concurrent.CombinedFuture;
v := @parameter: int;
v := @parameter: java.lang.Object;
return;
}
void handleAllCompleted()
{
com.google.common.util.concurrent.CombinedFuture v;
com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask v;
v := @this: com.google.common.util.concurrent.CombinedFuture;
v = v.<com.google.common.util.concurrent.CombinedFuture: com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask task>;
if v == null goto label;
virtualinvoke v.<com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask: void execute()>();
label:
return;
}
void releaseResources(com.google.common.util.concurrent.AggregateFuture$ReleaseResourcesReason)
{
com.google.common.util.concurrent.AggregateFuture$ReleaseResourcesReason v, v;
com.google.common.util.concurrent.CombinedFuture v;
v := @this: com.google.common.util.concurrent.CombinedFuture;
v := @parameter: com.google.common.util.concurrent.AggregateFuture$ReleaseResourcesReason;
specialinvoke v.<com.google.common.util.concurrent.AggregateFuture: void releaseResources(com.google.common.util.concurrent.AggregateFuture$ReleaseResourcesReason)>(v);
v = <com.google.common.util.concurrent.AggregateFuture$ReleaseResourcesReason: com.google.common.util.concurrent.AggregateFuture$ReleaseResourcesReason OUTPUT_FUTURE_DONE>;
if v != v goto label;
v.<com.google.common.util.concurrent.CombinedFuture: com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask task> = null;
label:
return;
}
protected void interruptTask()
{
com.google.common.util.concurrent.CombinedFuture v;
com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask v;
v := @this: com.google.common.util.concurrent.CombinedFuture;
v = v.<com.google.common.util.concurrent.CombinedFuture: com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask task>;
if v == null goto label;
virtualinvoke v.<com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask: void interruptTask()>();
label:
return;
}
}