public class org.fusesource.hawtdispatch.internal.SerialDispatchQueue extends org.fusesource.hawtdispatch.internal.AbstractDispatchObject implements org.fusesource.hawtdispatch.internal.HawtDispatchQueue
{
protected volatile java.lang.String label;
protected final java.util.concurrent.atomic.AtomicBoolean triggered;
protected final java.util.concurrent.ConcurrentLinkedQueue externalQueue;
private final java.util.LinkedList localQueue;
private final java.util.LinkedList sourceQueue;
private final java.lang.ThreadLocal executing;
private org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector;
private boolean profile;
static final boolean $assertionsDisabled;
public void <init>(java.lang.String)
{
java.lang.ThreadLocal v;
org.fusesource.hawtdispatch.internal.InactiveMetricsCollector v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.String v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
java.util.LinkedList v, v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: java.lang.String;
specialinvoke v.<org.fusesource.hawtdispatch.internal.AbstractDispatchObject: void <init>()>();
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.atomic.AtomicBoolean triggered> = v;
v = new java.util.concurrent.ConcurrentLinkedQueue;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void <init>()>();
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.ConcurrentLinkedQueue externalQueue> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue> = v;
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing> = v;
v = <org.fusesource.hawtdispatch.internal.InactiveMetricsCollector: org.fusesource.hawtdispatch.internal.InactiveMetricsCollector INSTANCE>;
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector> = v;
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean profile> = 0;
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.String label> = v;
return;
}
public void execute(org.fusesource.hawtdispatch.Task)
{
org.fusesource.hawtdispatch.Task v, v;
java.lang.AssertionError v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
boolean v;
org.fusesource.hawtdispatch.internal.MetricsCollector v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: org.fusesource.hawtdispatch.Task;
v = <org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector>;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.MetricsCollector: org.fusesource.hawtdispatch.Task track(org.fusesource.hawtdispatch.Task)>(v);
specialinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void enqueue(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void execute(java.lang.Runnable)
{
org.fusesource.hawtdispatch.TaskWrapper v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
java.lang.Runnable v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: java.lang.Runnable;
v = new org.fusesource.hawtdispatch.TaskWrapper;
specialinvoke v.<org.fusesource.hawtdispatch.TaskWrapper: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void executeAfter(long, java.util.concurrent.TimeUnit, java.lang.Runnable)
{
java.util.concurrent.TimeUnit v;
org.fusesource.hawtdispatch.TaskWrapper v;
long v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
java.lang.Runnable v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v := @parameter: java.lang.Runnable;
v = new org.fusesource.hawtdispatch.TaskWrapper;
specialinvoke v.<org.fusesource.hawtdispatch.TaskWrapper: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void executeAfter(long,java.util.concurrent.TimeUnit,org.fusesource.hawtdispatch.Task)>(v, v, v);
return;
}
public java.util.LinkedList getSourceQueue()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
java.util.LinkedList v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
return v;
}
private void enqueue(org.fusesource.hawtdispatch.Task)
{
java.lang.ThreadLocal v;
org.fusesource.hawtdispatch.Task v;
java.lang.Object v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
java.util.LinkedList v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: org.fusesource.hawtdispatch.Task;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v == null goto label;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.ConcurrentLinkedQueue externalQueue>;
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void triggerExecution()>();
label:
return;
}
public void run()
{
java.lang.Thread v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.ThreadLocal v, v, v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentLinkedQueue v, v, v, v;
java.lang.Throwable v, v;
java.util.concurrent.atomic.AtomicBoolean v, v, v;
java.lang.Thread$UncaughtExceptionHandler v;
java.lang.Boolean v;
java.util.LinkedList v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v, v;
java.lang.Object v, v, v, v, v, v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
specialinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void checkCollector()>();
v = <org.fusesource.hawtdispatch.internal.HawtDispatcher: java.lang.ThreadLocal CURRENT_QUEUE>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
v = <org.fusesource.hawtdispatch.internal.HawtDispatcher: java.lang.ThreadLocal CURRENT_QUEUE>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing>;
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.ConcurrentLinkedQueue externalQueue>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: java.lang.Object poll()>();
if v == null goto label;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean isSuspended()>();
if v == 0 goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
v = virtualinvoke v.<java.util.LinkedList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
v = <org.fusesource.hawtdispatch.internal.HawtDispatcher: java.lang.ThreadLocal CURRENT_QUEUE>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.atomic.AtomicBoolean triggered>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.ConcurrentLinkedQueue externalQueue>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean isSuspended()>();
if v != 0 goto label;
if v != 0 goto label;
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void triggerExecution()>();
label:
return;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object poll()>();
if v != null goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
v = virtualinvoke v.<java.util.LinkedList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
v = <org.fusesource.hawtdispatch.internal.HawtDispatcher: java.lang.ThreadLocal CURRENT_QUEUE>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.atomic.AtomicBoolean triggered>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.ConcurrentLinkedQueue externalQueue>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean isSuspended()>();
if v != 0 goto label;
if v != 0 goto label;
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void triggerExecution()>();
label:
return;
label:
virtualinvoke v.<org.fusesource.hawtdispatch.Task: void run()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.Thread$UncaughtExceptionHandler getUncaughtExceptionHandler()>();
interfaceinvoke v.<java.lang.Thread$UncaughtExceptionHandler: void uncaughtException(java.lang.Thread,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
v = virtualinvoke v.<java.util.LinkedList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList sourceQueue>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
v = <org.fusesource.hawtdispatch.internal.HawtDispatcher: java.lang.ThreadLocal CURRENT_QUEUE>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.atomic.AtomicBoolean triggered>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.ConcurrentLinkedQueue externalQueue>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.LinkedList localQueue>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean isSuspended()>();
if v != 0 goto label;
if v != 0 goto label;
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void triggerExecution()>();
label:
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void triggerExecution()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
org.fusesource.hawtdispatch.internal.HawtDispatchQueue v;
boolean v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.util.concurrent.atomic.AtomicBoolean triggered>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatchQueue getTargetQueue()>();
interfaceinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
label:
return;
}
public java.lang.String getLabel()
{
java.lang.String v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.String label>;
return v;
}
public void setLabel(java.lang.String)
{
java.lang.String v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: java.lang.String;
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.String label> = v;
return;
}
public boolean isExecuting()
{
java.lang.ThreadLocal v;
java.lang.Object v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
boolean v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.ThreadLocal executing>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void assertExecuting()
{
org.fusesource.hawtdispatch.internal.HawtDispatcher v;
java.lang.AssertionError v;
java.lang.String v, v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
boolean v, v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = <org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean isExecuting()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.String getLabel()>();
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: java.lang.String assertMessage(java.lang.String)>(v);
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
return;
}
protected void onStartup()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void triggerExecution()>();
return;
}
protected void onResume()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void triggerExecution()>();
return;
}
public org.fusesource.hawtdispatch.DispatchQueue$QueueType getQueueType()
{
org.fusesource.hawtdispatch.DispatchQueue$QueueType v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = <org.fusesource.hawtdispatch.DispatchQueue$QueueType: org.fusesource.hawtdispatch.DispatchQueue$QueueType SERIAL_QUEUE>;
return v;
}
public void executeAfter(long, java.util.concurrent.TimeUnit, org.fusesource.hawtdispatch.Task)
{
java.util.concurrent.TimeUnit v;
org.fusesource.hawtdispatch.internal.TimerThread v;
org.fusesource.hawtdispatch.Task v;
org.fusesource.hawtdispatch.internal.HawtDispatcher v;
long v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v := @parameter: org.fusesource.hawtdispatch.Task;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
v = v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: org.fusesource.hawtdispatch.internal.TimerThread timerThread>;
virtualinvoke v.<org.fusesource.hawtdispatch.internal.TimerThread: void addRelative(org.fusesource.hawtdispatch.Task,org.fusesource.hawtdispatch.DispatchQueue,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
return;
}
public org.fusesource.hawtdispatch.DispatchQueue createQueue(java.lang.String)
{
org.fusesource.hawtdispatch.internal.HawtDispatcher v;
java.lang.String v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v, v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: org.fusesource.hawtdispatch.internal.SerialDispatchQueue createQueue(java.lang.String)>(v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void setTargetQueue(org.fusesource.hawtdispatch.DispatchQueue)>(v);
return v;
}
public org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()
{
java.lang.UnsupportedOperationException v;
org.fusesource.hawtdispatch.internal.HawtDispatcher v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
org.fusesource.hawtdispatch.internal.HawtDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatchQueue getTargetQueue()>();
if v != null goto label;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
return v;
}
public org.fusesource.hawtdispatch.internal.SerialDispatchQueue isSerialDispatchQueue()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
return v;
}
public org.fusesource.hawtdispatch.internal.ThreadDispatchQueue isThreadDispatchQueue()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
return null;
}
public org.fusesource.hawtdispatch.internal.GlobalDispatchQueue isGlobalDispatchQueue()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
return null;
}
public void profile(boolean)
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
boolean v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v := @parameter: boolean;
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean profile> = v;
specialinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: void checkCollector()>();
return;
}
public boolean profile()
{
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
boolean v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean profile>;
return v;
}
private void checkCollector()
{
org.fusesource.hawtdispatch.internal.InactiveMetricsCollector v, v, v;
org.fusesource.hawtdispatch.internal.ActiveMetricsCollector v;
org.fusesource.hawtdispatch.internal.HawtDispatcher v, v, v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
boolean v, v;
org.fusesource.hawtdispatch.internal.MetricsCollector v, v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean profile()>();
if v != 0 goto label;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: boolean profile()>();
if v == 0 goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector>;
v = <org.fusesource.hawtdispatch.internal.InactiveMetricsCollector: org.fusesource.hawtdispatch.internal.InactiveMetricsCollector INSTANCE>;
if v != v goto label;
v = new org.fusesource.hawtdispatch.internal.ActiveMetricsCollector;
specialinvoke v.<org.fusesource.hawtdispatch.internal.ActiveMetricsCollector: void <init>(org.fusesource.hawtdispatch.DispatchQueue)>(v);
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector> = v;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
virtualinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: void track(org.fusesource.hawtdispatch.internal.HawtDispatchQueue)>(v);
goto label;
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector>;
v = <org.fusesource.hawtdispatch.internal.InactiveMetricsCollector: org.fusesource.hawtdispatch.internal.InactiveMetricsCollector INSTANCE>;
if v == v goto label;
v = <org.fusesource.hawtdispatch.internal.InactiveMetricsCollector: org.fusesource.hawtdispatch.internal.InactiveMetricsCollector INSTANCE>;
v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector> = v;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
virtualinvoke v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: void untrack(org.fusesource.hawtdispatch.internal.HawtDispatchQueue)>(v);
label:
return;
}
public org.fusesource.hawtdispatch.Metrics metrics()
{
org.fusesource.hawtdispatch.Metrics v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
org.fusesource.hawtdispatch.internal.MetricsCollector v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.MetricsCollector metricsCollector>;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.MetricsCollector: org.fusesource.hawtdispatch.Metrics metrics()>();
return v;
}
private int drains()
{
int v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
org.fusesource.hawtdispatch.internal.HawtDispatcher v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = virtualinvoke v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: org.fusesource.hawtdispatch.internal.HawtDispatcher getDispatcher()>();
v = v.<org.fusesource.hawtdispatch.internal.HawtDispatcher: int drains>;
return v;
}
public java.lang.String toString()
{
java.lang.String v, v, v;
org.fusesource.hawtdispatch.internal.SerialDispatchQueue v;
v := @this: org.fusesource.hawtdispatch.internal.SerialDispatchQueue;
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.String label>;
if v != null goto label;
return "serial queue";
label:
v = v.<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: java.lang.String label>;
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[])>("serial queue { label: \"\u0001\" }");
return v;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lorg/fusesource/hawtdispatch/internal/SerialDispatchQueue;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.fusesource.hawtdispatch.internal.SerialDispatchQueue: boolean $assertionsDisabled> = v;
return;
}
}