abstract class org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask extends java.util.concurrent.atomic.AtomicReference implements java.lang.Runnable
{
private static final java.lang.Runnable DONE;
private static final java.lang.Runnable INTERRUPTING;
private static final java.lang.Runnable PARKED;
private static final int MAX_BUSY_WAIT_SPINS;
void <init>()
{
org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask v;
v := @this: org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
return;
}
public final void run()
{
org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask v;
java.lang.Runnable v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Thread v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Throwable v, v;
int v, v, v;
java.lang.Object v, v, v, v;
v := @this: org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean isDone()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = null;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object runInterruptibly()>();
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
v = 0;
v = 0;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
if v == v goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v != v goto label;
label:
v = v + 1;
if v <= 1000 goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v == v goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v != 0 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
staticinvoke <java.util.concurrent.locks.LockSupport: void park(java.lang.Object)>(v);
goto label;
label:
staticinvoke <java.lang.Thread: void yield()>();
label:
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: void afterRanInterruptibly(java.lang.Object,java.lang.Throwable)>(v, null);
goto label;
label:
v := @caughtexception;
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
v = 0;
v = 0;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
if v == v goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v != v goto label;
label:
v = v + 1;
if v <= 1000 goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v == v goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v != 0 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
staticinvoke <java.util.concurrent.locks.LockSupport: void park(java.lang.Object)>(v);
goto label;
label:
staticinvoke <java.lang.Thread: void yield()>();
label:
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: void afterRanInterruptibly(java.lang.Object,java.lang.Throwable)>(null, v);
goto label;
label:
v := @caughtexception;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
v = 0;
v = 0;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
if v == v goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v != v goto label;
label:
v = v + 1;
if v <= 1000 goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v == v goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v != 0 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
staticinvoke <java.util.concurrent.locks.LockSupport: void park(java.lang.Object)>(v);
goto label;
label:
staticinvoke <java.lang.Thread: void yield()>();
label:
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: void afterRanInterruptibly(java.lang.Object,java.lang.Throwable)>(v, null);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
abstract boolean isDone();
abstract java.lang.Object runInterruptibly() throws java.lang.Exception;
abstract void afterRanInterruptibly(java.lang.Object, java.lang.Throwable);
final void interruptTask()
{
java.lang.Throwable v;
org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask v;
java.lang.Runnable v, v, v, v, v, v;
java.lang.Object v, v, v;
boolean v, v;
v := @this: org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
v = v instanceof java.lang.Thread;
if v == 0 goto label;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object getAndSet(java.lang.Object)>(v);
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v != v goto label;
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
goto label;
label:
v := @caughtexception;
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object getAndSet(java.lang.Object)>(v);
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED>;
if v != v goto label;
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public final java.lang.String toString()
{
org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask v;
java.lang.Runnable v, v, v;
java.lang.Object v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Object get()>();
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE>;
if v != v goto label;
v = "running=[DONE]";
goto label;
label:
v = <org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING>;
if v != v goto label;
v = "running=[INTERRUPTED]";
goto label;
label:
v = v instanceof java.lang.Thread;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Thread: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("running=[RUNNING ON \u]");
goto label;
label:
v = "running=[NOT STARTED YET]";
label:
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.String toPendingString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u, \u0001");
return v;
}
abstract java.lang.String toPendingString();
static void <clinit>()
{
org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable v, v, v;
v = new org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable;
specialinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable: void <init>()>();
<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable DONE> = v;
v = new org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable;
specialinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable: void <init>()>();
<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable INTERRUPTING> = v;
v = new org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable;
specialinvoke v.<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask$DoNothingRunnable: void <init>()>();
<org.apache.drill.shaded.guava.com.google.common.util.concurrent.InterruptibleTask: java.lang.Runnable PARKED> = v;
return;
}
}