public final class org.jboss.threads.EnhancedQueueExecutor extends org.jboss.threads.EnhancedQueueExecutorBase implements org.jboss.threads.management.ManageableThreadPoolExecutorService, java.util.concurrent.ScheduledExecutorService
{
private static final java.lang.Thread[] NO_THREADS;
public static final boolean DISABLE_HINT;
static final boolean UPDATE_STATISTICS;
static final boolean UPDATE_ACTIVE_COUNT;
static final boolean NO_QUEUE_LIMIT;
static final boolean REGISTER_MBEAN;
static final boolean DISABLE_MBEAN;
static final int PARK_SPINS;
static final int YIELD_FACTOR;
static final java.util.concurrent.Executor DEFAULT_HANDLER;
private final java.util.concurrent.ThreadFactory threadFactory;
private final java.util.Set runningThreads;
private final org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl mxBean;
private final java.lang.Object handle;
private volatile java.security.AccessControlContext acc;
private final org.jboss.threads.ContextHandler contextHandler;
private final org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask;
private final java.lang.Thread schedulerThread;
volatile org.jboss.threads.Waiter terminationWaiters;
volatile long queueSize;
volatile long timeoutNanos;
volatile float growthResistance;
volatile java.util.concurrent.Executor handoffExecutor;
volatile java.lang.Thread$UncaughtExceptionHandler exceptionHandler;
volatile java.lang.Runnable terminationTask;
volatile int peakThreadCount;
volatile int peakQueueSize;
private final java.util.concurrent.atomic.LongAdder submittedTaskCounter;
private final java.util.concurrent.atomic.LongAdder completedTaskCounter;
private final java.util.concurrent.atomic.LongAdder rejectedTaskCounter;
private final java.util.concurrent.atomic.LongAdder spinMisses;
volatile int activeCount;
private static final long terminationWaitersOffset;
private static final long queueSizeOffset;
private static final long peakThreadCountOffset;
private static final long activeCountOffset;
private static final long peakQueueSizeOffset;
private static final long TS_THREAD_CNT_MASK;
private static final long TS_CURRENT_SHIFT;
private static final long TS_CORE_SHIFT;
private static final long TS_MAX_SHIFT;
private static final long TS_ALLOW_CORE_TIMEOUT;
private static final long TS_SHUTDOWN_REQUESTED;
private static final long TS_SHUTDOWN_INTERRUPT;
private static final long TS_SHUTDOWN_COMPLETE;
private static final int EXE_OK;
private static final int EXE_REJECT_QUEUE_FULL;
private static final int EXE_REJECT_SHUTDOWN;
private static final int EXE_CREATE_THREAD;
private static final int AT_YES;
private static final int AT_NO;
private static final int AT_SHUTDOWN;
static final org.jboss.threads.EnhancedQueueExecutor$QNode TERMINATE_REQUESTED;
static final org.jboss.threads.EnhancedQueueExecutor$QNode TERMINATE_COMPLETE;
static final org.jboss.threads.Waiter TERMINATE_COMPLETE_WAITER;
static final java.lang.Runnable WAITING;
static final java.lang.Runnable GAVE_UP;
static final java.lang.Runnable ACCEPTED;
static final java.lang.Runnable EXIT;
static final java.util.concurrent.atomic.AtomicInteger sequence;
static final int ASF_ST_WAITING;
static final int ASF_ST_CANCELLED;
static final int ASF_ST_SUBMITTED;
static final int ASF_ST_RUNNING;
static final int ASF_ST_FINISHED;
static final int ASF_ST_FAILED;
static final int ASF_ST_REJECTED;
static final org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture[] NO_FUTURES;
static final java.util.concurrent.atomic.AtomicLong SCHEDULED_TASK_SEQ;
static final boolean $assertionsDisabled;
void <init>(org.jboss.threads.EnhancedQueueExecutor$Builder)
{
java.security.AccessControlContext v, v;
java.lang.Runnable v;
java.util.concurrent.atomic.AtomicInteger v;
java.lang.Thread v, v, v;
java.time.Duration v;
java.util.concurrent.ThreadFactory v, v;
boolean v, v, v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Set v;
float v;
java.util.concurrent.atomic.LongAdder v, v, v, v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v, v, v, v, v;
org.jboss.threads.EnhancedQueueExecutor$MBeanRegisterAction v;
java.lang.Thread$UncaughtExceptionHandler v;
int v, v, v, v, v;
java.lang.String v, v, v, v;
java.util.concurrent.Executor v;
org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl v, v;
org.jboss.threads.ContextHandler v;
org.jboss.threads.EnhancedQueueExecutor$Builder v;
java.lang.Object v;
org.jboss.threads.EnhancedQueueExecutor$SchedulerTask v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Builder;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutorBase6: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Set newSetFromMap(java.util.Map)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads> = v;
v = new org.jboss.threads.EnhancedQueueExecutor$SchedulerTask;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$SchedulerTask: void <init>(org.jboss.threads.EnhancedQueueExecutor)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask> = v;
v = new java.util.concurrent.atomic.LongAdder;
specialinvoke v.<java.util.concurrent.atomic.LongAdder: void <init>()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder submittedTaskCounter> = v;
v = new java.util.concurrent.atomic.LongAdder;
specialinvoke v.<java.util.concurrent.atomic.LongAdder: void <init>()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder completedTaskCounter> = v;
v = new java.util.concurrent.atomic.LongAdder;
specialinvoke v.<java.util.concurrent.atomic.LongAdder: void <init>()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder rejectedTaskCounter> = v;
v = new java.util.concurrent.atomic.LongAdder;
specialinvoke v.<java.util.concurrent.atomic.LongAdder: void <init>()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder spinMisses> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: int getMaximumPoolSize()>();
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: int getCorePoolSize()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: java.util.concurrent.Executor getHandoffExecutor()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: java.lang.Thread$UncaughtExceptionHandler getExceptionHandler()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread$UncaughtExceptionHandler exceptionHandler> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: java.util.concurrent.ThreadFactory getThreadFactory()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.ThreadFactory threadFactory> = v;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.ThreadFactory threadFactory>;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask>;
v = interfaceinvoke v.<java.util.concurrent.ThreadFactory: java.lang.Thread newThread(java.lang.Runnable)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread schedulerThread> = v;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread schedulerThread>;
v = virtualinvoke v.<java.lang.Thread: java.lang.String getName()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread schedulerThread>;
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[])>("\u (scheduler)");
virtualinvoke v.<java.lang.Thread: void setName(java.lang.String)>(v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: java.lang.Runnable getTerminationTask()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable terminationTask> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: float getGrowthResistance()>();
v.<org.jboss.threads.EnhancedQueueExecutor: float growthResistance> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: org.jboss.threads.ContextHandler getContextHandler()>();
v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.ContextHandler contextHandler> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: java.time.Duration getKeepAliveTime()>();
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: boolean allowsCoreThreadTimeOut()>();
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withAllowCoreTimeout(long,boolean)>(0L, v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withMaxSize(long,int)>(v, v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCoreSize(long,int)>(v, v);
v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus> = v;
v = staticinvoke <org.jboss.threads.TimeUtil: long clampedPositiveNanos(java.time.Duration)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: long timeoutNanos> = v;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCurrentQueueSize(long,int)>(0L, 0);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: int getMaximumQueueSize()>();
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withMaxQueueSize(long,int)>(v, v);
v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize> = v;
v = new org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl: void <init>(org.jboss.threads.EnhancedQueueExecutor)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl mxBean> = v;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean DISABLE_MBEAN>;
if v != 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: boolean isRegisterMBean()>();
if v == 0 goto label;
v = staticinvoke <java.security.AccessController: java.security.AccessControlContext getContext()>();
v.<org.jboss.threads.EnhancedQueueExecutor: java.security.AccessControlContext acc> = v;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Builder: java.lang.String getMBeanName()>();
if v == null goto label;
v = v;
goto label;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.AtomicInteger sequence>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int getAndIncrement()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("threadpool-\u0001");
label:
v = new org.jboss.threads.EnhancedQueueExecutor$MBeanRegisterAction;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl mxBean>;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$MBeanRegisterAction: void <init>(java.lang.String,org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl)>(v, v);
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.security.AccessControlContext acc>;
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction,java.security.AccessControlContext)>(v, v);
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Object handle> = v;
goto label;
label:
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Object handle> = null;
v.<org.jboss.threads.EnhancedQueueExecutor: java.security.AccessControlContext acc> = null;
label:
return;
}
public void execute(java.lang.Runnable)
{
java.lang.Throwable v;
java.util.concurrent.atomic.LongAdder v, v;
org.jboss.threads.EnhancedQueueExecutor v;
long v;
java.lang.AssertionError v;
java.lang.Runnable v;
int v, v, v;
boolean v, v, v, v, v;
org.jboss.threads.ContextHandler v;
java.lang.Object v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.lang.Runnable;
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("runnable", v);
v = new org.jboss.threads.EnhancedQueueExecutor$Task;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.ContextHandler contextHandler>;
v = interfaceinvoke v.<org.jboss.threads.ContextHandler: java.lang.Object captureContext()>();
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Task: void <init>(org.jboss.threads.EnhancedQueueExecutor,java.lang.Runnable,java.lang.Object)>(v, v, v);
v = specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor: int tryExecute(org.jboss.threads.EnhancedQueueExecutor$Task)>(v);
if v != 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentSizeOf(long)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: int tryAllocateThread(float)>(0.0F);
if v != 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean doStartThread(org.jboss.threads.EnhancedQueueExecutor$Task)>(null);
if v != 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void deallocateThread()>();
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder submittedTaskCounter>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
return;
label:
if v != 3 goto label;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean doStartThread(org.jboss.threads.EnhancedQueueExecutor$Task)>(v);
label:
if v != 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void deallocateThread()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void deallocateThread()>();
throw v;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder rejectedTaskCounter>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
if v != 2 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void rejectShutdown(org.jboss.threads.EnhancedQueueExecutor$Task)>(v);
goto label;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == 1 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void rejectQueueFull(org.jboss.threads.EnhancedQueueExecutor$Task)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void shutdown()
{
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void shutdown(boolean)>(0);
return;
}
public java.util.List shutdownNow()
{
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$QNode v;
org.jboss.threads.EnhancedQueueExecutor$TaskNode v;
java.lang.Runnable v;
java.util.ArrayList v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
boolean v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void shutdown(boolean)>(1);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$TaskNode head>;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: org.jboss.threads.EnhancedQueueExecutor$QNode getNext()>();
if v != v goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$TaskNode head>;
goto label;
label:
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$TaskNode;
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetHead(org.jboss.threads.EnhancedQueueExecutor$TaskNode,org.jboss.threads.EnhancedQueueExecutor$TaskNode)>(v, v);
if v == 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: void setNextOrdered(org.jboss.threads.EnhancedQueueExecutor$QNode)>(v);
v = <org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT>;
if v != 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void decreaseQueueSize()>();
label:
v = v;
v = v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: org.jboss.threads.EnhancedQueueExecutor$Task task>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Task: java.lang.Runnable handoff()>();
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public boolean isShutdown()
{
long v;
org.jboss.threads.EnhancedQueueExecutor v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
return v;
}
public boolean isTerminated()
{
long v;
org.jboss.threads.EnhancedQueueExecutor v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownComplete(long)>(v);
return v;
}
public boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
byte v;
java.lang.Thread v, v, v;
org.jboss.threads.Waiter v, v, v, v;
boolean v, v, v, v;
java.util.Set v;
java.util.concurrent.TimeUnit v;
java.lang.InterruptedException v;
org.jboss.threads.Messages v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
staticinvoke <org.wildfly.common.Assert: void checkMinimumParameter(java.lang.String,long,long)>("timeout", 0L, v);
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("unit", v);
v = v cmp 0L;
if v <= 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread schedulerThread>;
if v != v goto label;
label:
v = <org.jboss.threads.Messages: org.jboss.threads.Messages msg>;
v = interfaceinvoke v.<org.jboss.threads.Messages: java.lang.IllegalStateException cannotAwaitWithin()>();
throw v;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter terminationWaiters>;
v = <org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter TERMINATE_COMPLETE_WAITER>;
if v != v goto label;
return 1;
label:
v = new org.jboss.threads.Waiter;
specialinvoke v.<org.jboss.threads.Waiter: void <init>(org.jboss.threads.Waiter)>(v);
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<org.jboss.threads.Waiter: org.jboss.threads.Waiter setThread(java.lang.Thread)>(v);
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetTerminationWaiters(org.jboss.threads.Waiter,org.jboss.threads.Waiter)>(v, v);
if v != 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter terminationWaiters>;
v = <org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter TERMINATE_COMPLETE_WAITER>;
if v != v goto label;
return 1;
label:
virtualinvoke v.<org.jboss.threads.Waiter: org.jboss.threads.Waiter setNext(org.jboss.threads.Waiter)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
staticinvoke <java.util.concurrent.locks.LockSupport: void parkNanos(java.lang.Object,long)>(v, v);
label:
virtualinvoke v.<org.jboss.threads.Waiter: org.jboss.threads.Waiter setThread(java.lang.Thread)>(null);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.jboss.threads.Waiter: org.jboss.threads.Waiter setThread(java.lang.Thread)>(null);
throw v;
label:
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>()>();
throw v;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean isTerminated()>();
return v;
catch java.lang.Throwable from label to label with label;
}
public java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$RunnableScheduledFuture v;
org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture v;
long v;
java.lang.Runnable v;
org.jboss.threads.EnhancedQueueExecutor$SchedulerTask v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.lang.Runnable;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void startScheduleThread()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask>;
v = new org.jboss.threads.EnhancedQueueExecutor$RunnableScheduledFuture;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$RunnableScheduledFuture: void <init>(org.jboss.threads.EnhancedQueueExecutor,java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$SchedulerTask: org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture schedule(org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture)>(v);
return v;
}
public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture v;
org.jboss.threads.EnhancedQueueExecutor$CallableScheduledFuture v;
java.util.concurrent.Callable v;
long v;
org.jboss.threads.EnhancedQueueExecutor$SchedulerTask v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.util.concurrent.Callable;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void startScheduleThread()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask>;
v = new org.jboss.threads.EnhancedQueueExecutor$CallableScheduledFuture;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$CallableScheduledFuture: void <init>(org.jboss.threads.EnhancedQueueExecutor,java.util.concurrent.Callable,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$SchedulerTask: org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture schedule(org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture)>(v);
return v;
}
public java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)
{
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
java.lang.Runnable v;
java.util.concurrent.TimeUnit v;
org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture v;
org.jboss.threads.EnhancedQueueExecutor$FixedRateRunnableScheduledFuture v;
org.jboss.threads.EnhancedQueueExecutor$SchedulerTask v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.lang.Runnable;
v := @parameter: long;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void startScheduleThread()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask>;
v = new org.jboss.threads.EnhancedQueueExecutor$FixedRateRunnableScheduledFuture;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$FixedRateRunnableScheduledFuture: void <init>(org.jboss.threads.EnhancedQueueExecutor,java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, v, v, v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$SchedulerTask: org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture schedule(org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture)>(v);
return v;
}
public java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)
{
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
java.lang.Runnable v;
java.util.concurrent.TimeUnit v;
org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture v;
org.jboss.threads.EnhancedQueueExecutor$FixedDelayRunnableScheduledFuture v;
org.jboss.threads.EnhancedQueueExecutor$SchedulerTask v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.lang.Runnable;
v := @parameter: long;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void startScheduleThread()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask>;
v = new org.jboss.threads.EnhancedQueueExecutor$FixedDelayRunnableScheduledFuture;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$FixedDelayRunnableScheduledFuture: void <init>(org.jboss.threads.EnhancedQueueExecutor,java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, v, v, v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$SchedulerTask: org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture schedule(org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture)>(v);
return v;
}
private void startScheduleThread()
{
java.lang.IllegalThreadStateException v;
org.jboss.threads.EnhancedQueueExecutor v;
java.lang.Thread$State v, v;
java.lang.Thread v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread schedulerThread>;
v = virtualinvoke v.<java.lang.Thread: java.lang.Thread$State getState()>();
v = <java.lang.Thread$State: java.lang.Thread$State NEW>;
if v != v goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread schedulerThread>;
virtualinvoke v.<java.lang.Thread: void start()>();
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.IllegalThreadStateException from label to label with label;
}
public org.jboss.threads.management.StandardThreadPoolMXBean getThreadPoolMXBean()
{
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$MXBeanImpl mxBean>;
return v;
}
public void shutdown(boolean)
{
java.lang.IllegalStateException v;
java.lang.Runnable v, v;
byte v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Set v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$QNode v, v;
long v, v;
org.jboss.threads.EnhancedQueueExecutor$TaskNode v;
java.lang.AssertionError v, v, v, v;
int v;
java.util.Iterator v;
java.lang.Object v;
org.jboss.threads.EnhancedQueueExecutor$SchedulerTask v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: boolean;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withShutdownRequested(long)>(v);
if v == 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withShutdownInterrupt(long)>(v);
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentSizeOf(long)>(v);
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withShutdownComplete(long)>(v);
label:
v = v cmp v;
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetThreadStatus(long,long)>(v, v);
if v == 0 goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v cmp v;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
if v == v goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$SchedulerTask schedulerTask>;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$SchedulerTask: void shutdown()>();
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$TaskNode tail>;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: org.jboss.threads.EnhancedQueueExecutor$QNode getNext()>();
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$TaskNode;
if v != 0 goto label;
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode;
if v != 0 goto label;
if v != null goto label;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$QNode TERMINATE_REQUESTED>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: boolean compareAndSetNext(org.jboss.threads.EnhancedQueueExecutor$QNode,org.jboss.threads.EnhancedQueueExecutor$QNode)>(v, v);
if v == 0 goto label;
label:
if v == null goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable WAITING>;
v = <org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable EXIT>;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode: boolean compareAndSetTask(java.lang.Runnable,java.lang.Runnable)>(v, v);
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode: void unpark()>();
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode: org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode getNext()>();
goto label;
label:
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode;
if v != 0 goto label;
v = staticinvoke <org.wildfly.common.Assert: java.lang.IllegalStateException unreachableCode()>();
throw v;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownInterrupt(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownInterrupt(long)>(v);
if v == v goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownInterrupt(long)>(v);
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads>;
v = interfaceinvoke v.<java.util.Set: 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()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownComplete(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownComplete(long)>(v);
if v == v goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownComplete(long)>(v);
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void completeTermination()>();
label:
return;
}
public boolean isTerminating()
{
org.jboss.threads.EnhancedQueueExecutor v;
long v;
boolean v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
if v == 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownComplete(long)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean prestartCoreThread()
{
int v;
org.jboss.threads.EnhancedQueueExecutor v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: int tryAllocateThread(float)>(1.0F);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean doStartThread(org.jboss.threads.EnhancedQueueExecutor$Task)>(null);
if v == 0 goto label;
return 1;
label:
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void deallocateThread()>();
return 0;
}
public int prestartAllCoreThreads()
{
int v;
org.jboss.threads.EnhancedQueueExecutor v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = 0;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean prestartCoreThread()>();
if v == 0 goto label;
v = v + 1;
goto label;
label:
return v;
}
public float getGrowthResistance()
{
float v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: float growthResistance>;
return v;
}
public void setGrowthResistance(float)
{
float v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: float;
staticinvoke <org.wildfly.common.Assert: void checkMinimumParameter(java.lang.String,float,float)>("growthResistance", 0.0F, v);
staticinvoke <org.wildfly.common.Assert: void checkMaximumParameter(java.lang.String,float,float)>("growthResistance", 1.0F, v);
v.<org.jboss.threads.EnhancedQueueExecutor: float growthResistance> = v;
return;
}
public int getCorePoolSize()
{
int v;
long v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
return v;
}
public void setCorePoolSize(int)
{
org.jboss.threads.EnhancedQueueExecutor v;
java.util.Iterator v;
java.util.Set v;
long v, v, v;
int v, v, v, v, v, v;
java.lang.Object v;
boolean v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: int;
staticinvoke <org.wildfly.common.Assert: void checkMinimumParameter(java.lang.String,int,int)>("corePoolSize", 0, v);
staticinvoke <org.wildfly.common.Assert: void checkMaximumParameter(java.lang.String,long,long)>("corePoolSize", 1048575L, v);
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
if v <= v goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withMaxSize(long,int)>(v, v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCoreSize(long,int)>(v, v);
goto label;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCoreSize(long,int)>(v, v);
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetThreadStatus(long,long)>(v, v);
if v == 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
if v < v goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
if v >= v goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads>;
v = interfaceinvoke v.<java.util.Set: 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()>();
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
goto label;
label:
return;
}
public int getMaximumPoolSize()
{
int v;
long v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
return v;
}
public void setMaximumPoolSize(int)
{
org.jboss.threads.EnhancedQueueExecutor v;
java.util.Iterator v;
java.util.Set v;
long v, v, v;
int v, v, v, v, v, v;
java.lang.Object v;
boolean v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: int;
staticinvoke <org.wildfly.common.Assert: void checkMinimumParameter(java.lang.String,int,int)>("maxPoolSize", 0, v);
staticinvoke <org.wildfly.common.Assert: void checkMaximumParameter(java.lang.String,long,long)>("maxPoolSize", 1048575L, v);
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
if v >= v goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withMaxSize(long,int)>(v, v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCoreSize(long,int)>(v, v);
goto label;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withMaxSize(long,int)>(v, v);
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetThreadStatus(long,long)>(v, v);
if v == 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
if v < v goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
if v >= v goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads>;
v = interfaceinvoke v.<java.util.Set: 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()>();
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
goto label;
label:
return;
}
public boolean allowsCoreThreadTimeOut()
{
long v;
org.jboss.threads.EnhancedQueueExecutor v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isAllowCoreTimeout(long)>(v);
return v;
}
public void allowCoreThreadTimeOut(boolean)
{
org.jboss.threads.EnhancedQueueExecutor v;
java.util.Iterator v;
java.util.Set v;
long v, v;
byte v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: boolean;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withAllowCoreTimeout(long,boolean)>(v, v);
v = v cmp v;
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetThreadStatus(long,long)>(v, v);
if v == 0 goto label;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads>;
v = interfaceinvoke v.<java.util.Set: 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()>();
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
goto label;
label:
return;
}
public long getKeepAliveTime(java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v, v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.util.concurrent.TimeUnit;
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("keepAliveUnits", v);
v = v.<org.jboss.threads.EnhancedQueueExecutor: long timeoutNanos>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long convert(long,java.util.concurrent.TimeUnit)>(v, v);
return v;
}
public java.time.Duration getKeepAliveTime()
{
java.time.temporal.ChronoUnit v;
org.jboss.threads.EnhancedQueueExecutor v;
java.time.Duration v;
long v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long timeoutNanos>;
v = <java.time.temporal.ChronoUnit: java.time.temporal.ChronoUnit NANOS>;
v = staticinvoke <java.time.Duration: java.time.Duration of(long,java.time.temporal.TemporalUnit)>(v, v);
return v;
}
public void setKeepAliveTime(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
staticinvoke <org.wildfly.common.Assert: void checkMinimumParameter(java.lang.String,long,long)>("keepAliveTime", 1L, v);
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("keepAliveUnits", v);
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = staticinvoke <java.lang.Math: long max(long,long)>(1L, v);
v.<org.jboss.threads.EnhancedQueueExecutor: long timeoutNanos> = v;
return;
}
public void setKeepAliveTime(java.time.Duration)
{
long v;
org.jboss.threads.EnhancedQueueExecutor v;
java.time.Duration v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.time.Duration;
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("keepAliveTime", v);
v = staticinvoke <org.jboss.threads.TimeUtil: long clampedPositiveNanos(java.time.Duration)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: long timeoutNanos> = v;
return;
}
public int getMaximumQueueSize()
{
int v;
long v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxQueueSizeOf(long)>(v);
return v;
}
public void setMaximumQueueSize(int)
{
org.jboss.threads.EnhancedQueueExecutor v;
int v;
long v, v;
boolean v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: int;
staticinvoke <org.wildfly.common.Assert: void checkMinimumParameter(java.lang.String,int,int)>("maxQueueSize", 0, v);
staticinvoke <org.wildfly.common.Assert: void checkMaximumParameter(java.lang.String,int,int)>("maxQueueSize", 2147483647, v);
v = <org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT>;
if v == 0 goto label;
return;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withMaxQueueSize(long,int)>(v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetQueueSize(long,long)>(v, v);
if v == 0 goto label;
return;
}
public java.util.concurrent.Executor getHandoffExecutor()
{
org.jboss.threads.EnhancedQueueExecutor v;
java.util.concurrent.Executor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor>;
return v;
}
public void setHandoffExecutor(java.util.concurrent.Executor)
{
org.jboss.threads.EnhancedQueueExecutor v;
java.util.concurrent.Executor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("handoffExecutor", v);
v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor> = v;
return;
}
public java.lang.Thread$UncaughtExceptionHandler getExceptionHandler()
{
org.jboss.threads.EnhancedQueueExecutor v;
java.lang.Thread$UncaughtExceptionHandler v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread$UncaughtExceptionHandler exceptionHandler>;
return v;
}
public void setExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
{
org.jboss.threads.EnhancedQueueExecutor v;
java.lang.Thread$UncaughtExceptionHandler v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.lang.Thread$UncaughtExceptionHandler;
staticinvoke <org.wildfly.common.Assert: java.lang.Object checkNotNullParam(java.lang.String,java.lang.Object)>("exceptionHandler", v);
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread$UncaughtExceptionHandler exceptionHandler> = v;
return;
}
public void setTerminationTask(java.lang.Runnable)
{
org.jboss.threads.EnhancedQueueExecutor v;
java.lang.Runnable v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: java.lang.Runnable;
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable terminationTask> = v;
return;
}
public int getQueueSize()
{
org.jboss.threads.EnhancedQueueExecutor v;
int v, v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT>;
if v == 0 goto label;
v = (int) -1;
v = v;
goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentQueueSizeOf(long)>(v);
label:
return v;
}
public int getLargestPoolSize()
{
org.jboss.threads.EnhancedQueueExecutor v;
int v, v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: int peakThreadCount>;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
}
public int getActiveCount()
{
org.jboss.threads.EnhancedQueueExecutor v;
int v, v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_ACTIVE_COUNT>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: int activeCount>;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
}
public int getLargestQueueSize()
{
org.jboss.threads.EnhancedQueueExecutor v;
int v, v;
boolean v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT>;
if v != 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: int peakQueueSize>;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
}
public long getSubmittedTaskCount()
{
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder submittedTaskCounter>;
v = virtualinvoke v.<java.util.concurrent.atomic.LongAdder: long longValue()>();
goto label;
label:
v = -1L;
label:
return v;
}
public long getRejectedTaskCount()
{
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder rejectedTaskCounter>;
v = virtualinvoke v.<java.util.concurrent.atomic.LongAdder: long longValue()>();
goto label;
label:
v = -1L;
label:
return v;
}
public long getCompletedTaskCount()
{
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder completedTaskCounter>;
v = virtualinvoke v.<java.util.concurrent.atomic.LongAdder: long longValue()>();
goto label;
label:
v = -1L;
label:
return v;
}
public int getPoolSize()
{
int v;
long v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentSizeOf(long)>(v);
return v;
}
public java.lang.Thread[] getRunningThreads()
{
java.lang.Object[] v;
org.jboss.threads.EnhancedQueueExecutor v;
java.lang.Thread[] v;
java.util.Set v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.Set runningThreads>;
v = <org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread[] NO_THREADS>;
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
int tryAllocateThread(float)
{
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
byte v, v, v;
java.util.concurrent.ThreadLocalRandom v;
int v, v, v, v, v;
boolean v, v, v, v, v;
float v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: float;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
if v == 0 goto label;
return 2;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxSizeOf(long)>(v);
if v < v goto label;
return 1;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int coreSizeOf(long)>(v);
if v < v goto label;
if v <= 0 goto label;
v = v cmpl 0.0F;
if v == 0 goto label;
v = v cmpl 1.0F;
if v == 0 goto label;
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: float nextFloat()>();
v = v cmpg v;
if v >= 0 goto label;
label:
return 1;
label:
v = v + 1;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCurrentSize(long,int)>(v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetThreadStatus(long,long)>(v, v);
if v == 0 goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: int peakThreadCount>;
if v >= v goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetPeakThreadCount(int,int)>(v, v);
if v == 0 goto label;
label:
return 0;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder spinMisses>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
goto label;
}
void deallocateThread()
{
long v;
org.jboss.threads.EnhancedQueueExecutor v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long threadStatus>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean tryDeallocateThread(long)>(v);
if v == 0 goto label;
return;
}
boolean tryDeallocateThread(long)
{
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
int v, v, v;
boolean v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: long;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentSizeOf(long)>(v);
v = v - 1;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCurrentSize(long,int)>(v, v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentSizeOf(long)>(v);
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownRequested(long)>(v);
if v == 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withShutdownComplete(long)>(v);
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetThreadStatus(long,long)>(v, v);
if v != 0 goto label;
return 0;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean isShutdownComplete(long)>(v);
if v == 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void completeTermination()>();
label:
return 1;
}
boolean doStartThread(org.jboss.threads.EnhancedQueueExecutor$Task) throws java.util.concurrent.RejectedExecutionException
{
java.lang.Throwable v, v;
java.util.concurrent.atomic.LongAdder v, v, v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$ThreadBody v;
java.lang.Thread v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
java.util.concurrent.ThreadFactory v;
boolean v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Task;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.ThreadFactory threadFactory>;
v = new org.jboss.threads.EnhancedQueueExecutor$ThreadBody;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$ThreadBody: void <init>(org.jboss.threads.EnhancedQueueExecutor,org.jboss.threads.EnhancedQueueExecutor$Task)>(v, v);
v = interfaceinvoke v.<java.util.concurrent.ThreadFactory: java.lang.Thread newThread(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
if v == null goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder rejectedTaskCounter>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void rejectException(org.jboss.threads.EnhancedQueueExecutor$Task,java.lang.Throwable)>(v, v);
label:
return 0;
label:
if v != null goto label;
if v == null goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder rejectedTaskCounter>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void rejectNoThread(org.jboss.threads.EnhancedQueueExecutor$Task)>(v);
label:
return 0;
label:
virtualinvoke v.<java.lang.Thread: void start()>();
label:
goto label;
label:
v := @caughtexception;
if v == null goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder rejectedTaskCounter>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void rejectException(org.jboss.threads.EnhancedQueueExecutor$Task,java.lang.Throwable)>(v, v);
label:
return 0;
label:
return 1;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private int tryExecute(org.jboss.threads.EnhancedQueueExecutor$Task)
{
java.lang.Runnable v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
float v;
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$QNode v, v;
org.jboss.threads.EnhancedQueueExecutor$TaskNode v, v, v;
java.lang.AssertionError v, v, v, v;
int v, v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Task;
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$TaskNode tail>;
v = null;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: org.jboss.threads.EnhancedQueueExecutor$QNode getNext()>();
if v == v goto label;
if v != null goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: float growthResistance>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: int tryAllocateThread(float)>(v);
if v != 0 goto label;
return 3;
label:
if v != 2 goto label;
return 2;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == 1 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT>;
if v != 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean increaseQueueSize()>();
if v != 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: int tryAllocateThread(float)>(0.0F);
if v != 0 goto label;
return 3;
label:
if v != 2 goto label;
return 2;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == 1 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
return 1;
label:
if v != null goto label;
v = new org.jboss.threads.EnhancedQueueExecutor$TaskNode;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: void <init>(org.jboss.threads.EnhancedQueueExecutor$Task)>(v);
v = v;
label:
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: boolean compareAndSetNext(org.jboss.threads.EnhancedQueueExecutor$QNode,org.jboss.threads.EnhancedQueueExecutor$QNode)>(null, v);
if v == 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetTail(org.jboss.threads.EnhancedQueueExecutor$TaskNode,org.jboss.threads.EnhancedQueueExecutor$TaskNode)>(v, v);
return 0;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT>;
if v != 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: void decreaseQueueSize()>();
goto label;
label:
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode;
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$QNode: org.jboss.threads.EnhancedQueueExecutor$QNode getNext()>();
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: boolean compareAndSetNext(org.jboss.threads.EnhancedQueueExecutor$QNode,org.jboss.threads.EnhancedQueueExecutor$QNode)>(v, v);
if v == 0 goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$TaskNode;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable WAITING>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode: boolean compareAndSetTask(java.lang.Runnable,java.lang.Runnable)>(v, v);
if v == 0 goto label;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode: boolean compareAndSetNext(org.jboss.threads.EnhancedQueueExecutor$QNode,org.jboss.threads.EnhancedQueueExecutor$QNode)>(v, null);
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$PoolThreadNode: void unpark()>();
return 0;
label:
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$TaskNode;
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetTail(org.jboss.threads.EnhancedQueueExecutor$TaskNode,org.jboss.threads.EnhancedQueueExecutor$TaskNode)>(v, v);
if v == 0 goto label;
v = v;
goto label;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v instanceof org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
return 2;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder spinMisses>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$TaskNode tail>;
goto label;
}
void completeTermination()
{
java.lang.Throwable v, v, v;
java.security.AccessControlContext v, v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.EnhancedQueueExecutor$QNode v;
org.jboss.threads.EnhancedQueueExecutor$TaskNode v;
java.lang.Runnable v, v;
java.lang.Thread$UncaughtExceptionHandler v;
java.lang.Thread v, v, v, v;
org.jboss.threads.Waiter v, v;
boolean v, v, v, v;
org.jboss.threads.EnhancedQueueExecutor$MBeanUnregisterAction v;
java.lang.Object v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable terminationTask>;
v = staticinvoke <org.jboss.threads.JBossExecutors: java.lang.Runnable classLoaderPreservingTask(java.lang.Runnable)>(v);
v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable terminationTask> = null;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread$UncaughtExceptionHandler exceptionHandler>;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
interfaceinvoke v.<java.lang.Thread$UncaughtExceptionHandler: void uncaughtException(java.lang.Thread,java.lang.Throwable)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter TERMINATE_COMPLETE_WAITER>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter getAndSetTerminationWaiters(org.jboss.threads.Waiter)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<org.jboss.threads.Waiter: java.lang.Thread getThread()>();
staticinvoke <java.util.concurrent.locks.LockSupport: void unpark(java.lang.Thread)>(v);
v = virtualinvoke v.<org.jboss.threads.Waiter: org.jboss.threads.Waiter getNext()>();
goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$TaskNode tail>;
v = <org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$QNode TERMINATE_COMPLETE>;
virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TaskNode: void setNext(org.jboss.threads.EnhancedQueueExecutor$QNode)>(v);
v = <org.jboss.threads.EnhancedQueueExecutor: boolean DISABLE_MBEAN>;
if v != 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.security.AccessControlContext acc>;
if v == null goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.lang.Object handle>;
if v == null goto label;
if v != 0 goto label;
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = new org.jboss.threads.EnhancedQueueExecutor$MBeanUnregisterAction;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$MBeanUnregisterAction: void <init>(java.lang.Object)>(v);
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.security.AccessControlContext acc>;
staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction,java.security.AccessControlContext)>(v, v);
label:
v.<org.jboss.threads.EnhancedQueueExecutor: java.security.AccessControlContext acc> = null;
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
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;
catch java.lang.Throwable from label to label with label;
}
void incrementActiveCount()
{
sun.misc.Unsafe v;
long v;
org.jboss.threads.EnhancedQueueExecutor v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long activeCountOffset>;
virtualinvoke v.<sun.misc.Unsafe: int getAndAddInt(java.lang.Object,long,int)>(v, v, 1);
return;
}
void decrementActiveCount()
{
sun.misc.Unsafe v;
org.jboss.threads.EnhancedQueueExecutor v;
int v;
long v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long activeCountOffset>;
v = (int) -1;
virtualinvoke v.<sun.misc.Unsafe: int getAndAddInt(java.lang.Object,long,int)>(v, v, v);
return;
}
boolean compareAndSetPeakThreadCount(int, int)
{
sun.misc.Unsafe v;
org.jboss.threads.EnhancedQueueExecutor v;
int v, v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: int;
v := @parameter: int;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long peakThreadCountOffset>;
v = virtualinvoke v.<sun.misc.Unsafe: boolean compareAndSwapInt(java.lang.Object,long,int,int)>(v, v, v, v);
return v;
}
boolean compareAndSetPeakQueueSize(int, int)
{
sun.misc.Unsafe v;
org.jboss.threads.EnhancedQueueExecutor v;
int v, v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: int;
v := @parameter: int;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long peakQueueSizeOffset>;
v = virtualinvoke v.<sun.misc.Unsafe: boolean compareAndSwapInt(java.lang.Object,long,int,int)>(v, v, v, v);
return v;
}
boolean compareAndSetQueueSize(long, long)
{
sun.misc.Unsafe v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v, v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: long;
v := @parameter: long;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long queueSizeOffset>;
v = virtualinvoke v.<sun.misc.Unsafe: boolean compareAndSwapLong(java.lang.Object,long,long,long)>(v, v, v, v);
return v;
}
boolean compareAndSetTerminationWaiters(org.jboss.threads.Waiter, org.jboss.threads.Waiter)
{
sun.misc.Unsafe v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.Waiter v, v;
long v;
boolean v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.Waiter;
v := @parameter: org.jboss.threads.Waiter;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long terminationWaitersOffset>;
v = virtualinvoke v.<sun.misc.Unsafe: boolean compareAndSwapObject(java.lang.Object,long,java.lang.Object,java.lang.Object)>(v, v, v, v);
return v;
}
org.jboss.threads.Waiter getAndSetTerminationWaiters(org.jboss.threads.Waiter)
{
sun.misc.Unsafe v;
org.jboss.threads.EnhancedQueueExecutor v;
org.jboss.threads.Waiter v;
java.lang.Object v;
long v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.Waiter;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = <org.jboss.threads.EnhancedQueueExecutor: long terminationWaitersOffset>;
v = virtualinvoke v.<sun.misc.Unsafe: java.lang.Object getAndSetObject(java.lang.Object,long,java.lang.Object)>(v, v, v);
return v;
}
boolean increaseQueueSize()
{
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
int v, v, v, v, v, v;
boolean v, v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentQueueSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxQueueSizeOf(long)>(v);
if v < v goto label;
return 0;
label:
v = v + 1;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCurrentQueueSize(long,int)>(v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetQueueSize(long,long)>(v, v);
if v != 0 goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder spinMisses>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentQueueSizeOf(long)>(v);
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int maxQueueSizeOf(long)>(v);
if v < v goto label;
return 0;
label:
v = v + 1;
goto label;
label:
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: int peakQueueSize>;
if v <= v goto label;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetPeakQueueSize(int,int)>(v, v);
if v == 0 goto label;
label:
return 1;
}
void decreaseQueueSize()
{
java.util.concurrent.atomic.LongAdder v;
org.jboss.threads.EnhancedQueueExecutor v;
long v, v;
java.lang.AssertionError v, v;
int v, v, v, v;
boolean v, v, v, v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentQueueSizeOf(long)>(v);
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentQueueSizeOf(long)>(v);
v = v - 1;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: long withCurrentQueueSize(long,int)>(v, v);
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor: boolean compareAndSetQueueSize(long,long)>(v, v);
if v != 0 goto label;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v == 0 goto label;
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.LongAdder spinMisses>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: long queueSize>;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int currentQueueSizeOf(long)>(v);
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
return;
}
static int currentQueueSizeOf(long)
{
long v, v;
v := @parameter: long;
v = v & 2147483647L;
return v;
}
static long withCurrentQueueSize(long, int)
{
int v;
long v, v, v;
java.lang.AssertionError v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v & -4294967296L;
v = v | v;
return v;
}
static int maxQueueSizeOf(long)
{
long v, v, v;
v := @parameter: long;
v = v >>> 32;
v = v & 2147483647L;
return v;
}
static long withMaxQueueSize(long, int)
{
int v;
long v, v, v, v;
java.lang.AssertionError v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v & 4294967295L;
v = v << 32;
v = v | v;
return v;
}
static int coreSizeOf(long)
{
long v, v, v;
v := @parameter: long;
v = v >>> 20;
v = v & 1048575L;
return v;
}
static int maxSizeOf(long)
{
long v, v, v;
v := @parameter: long;
v = v >>> 40;
v = v & 1048575L;
return v;
}
static int currentSizeOf(long)
{
long v, v, v;
v := @parameter: long;
v = v >>> 0;
v = v & 1048575L;
return v;
}
static long withCoreSize(long, int)
{
long v, v, v, v;
java.lang.AssertionError v;
byte v;
int v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if 0 > v goto label;
v = v cmp 1048575L;
if v <= 0 goto label;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v & -1099510579201L;
v = v << 20;
v = v | v;
return v;
}
static long withCurrentSize(long, int)
{
long v, v, v, v;
java.lang.AssertionError v;
byte v;
int v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if 0 > v goto label;
v = v cmp 1048575L;
if v <= 0 goto label;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v & -1048576L;
v = v << 0;
v = v | v;
return v;
}
static long withMaxSize(long, int)
{
long v, v, v, v;
java.lang.AssertionError v;
byte v;
int v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled>;
if v != 0 goto label;
if 0 > v goto label;
v = v cmp 1048575L;
if v <= 0 goto label;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v & -1152920405095219201L;
v = v << 40;
v = v | v;
return v;
}
static long withShutdownRequested(long)
{
long v, v;
v := @parameter: long;
v = v | 2305843009213693952L;
return v;
}
static long withShutdownComplete(long)
{
long v, v;
v := @parameter: long;
v = v | -9223372036854775808L;
return v;
}
static long withShutdownInterrupt(long)
{
long v, v;
v := @parameter: long;
v = v | 4611686018427387904L;
return v;
}
static long withAllowCoreTimeout(long, boolean)
{
long v, v;
boolean v;
v := @parameter: long;
v := @parameter: boolean;
if v == 0 goto label;
v = v | 1152921504606846976L;
goto label;
label:
v = v & -1152921504606846977L;
label:
return v;
}
static boolean isShutdownRequested(long)
{
byte v;
long v, v;
boolean v;
v := @parameter: long;
v = v & 2305843009213693952L;
v = v cmp 0L;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static boolean isShutdownComplete(long)
{
byte v;
long v, v;
boolean v;
v := @parameter: long;
v = v & -9223372036854775808L;
v = v cmp 0L;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static boolean isShutdownInterrupt(long)
{
byte v;
long v, v;
boolean v;
v := @parameter: long;
v = v & 4611686018427387904L;
v = v cmp 0L;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static boolean isAllowCoreTimeout(long)
{
byte v;
long v, v;
boolean v;
v := @parameter: long;
v = v & 1152921504606846976L;
v = v cmp 0L;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
void rejectException(org.jboss.threads.EnhancedQueueExecutor$Task, java.lang.Throwable)
{
java.lang.Throwable v, v;
org.jboss.threads.EnhancedQueueExecutor v;
java.util.concurrent.Executor v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
java.lang.Runnable v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Task;
v := @parameter: java.lang.Throwable;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Task: java.lang.Runnable handoff()>();
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void rejectNoThread(org.jboss.threads.EnhancedQueueExecutor$Task)
{
java.lang.Throwable v;
java.util.concurrent.RejectedExecutionException v;
org.jboss.threads.EnhancedQueueExecutor v;
java.util.concurrent.Executor v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
java.lang.Runnable v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Task;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Task: java.lang.Runnable handoff()>();
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.util.concurrent.RejectedExecutionException;
specialinvoke v.<java.util.concurrent.RejectedExecutionException: void <init>(java.lang.String)>("No threads available");
virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void rejectQueueFull(org.jboss.threads.EnhancedQueueExecutor$Task)
{
java.lang.Throwable v;
java.util.concurrent.RejectedExecutionException v;
org.jboss.threads.EnhancedQueueExecutor v;
java.util.concurrent.Executor v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
java.lang.Runnable v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Task;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Task: java.lang.Runnable handoff()>();
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.util.concurrent.RejectedExecutionException;
specialinvoke v.<java.util.concurrent.RejectedExecutionException: void <init>(java.lang.String)>("Queue is full");
virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void rejectShutdown(org.jboss.threads.EnhancedQueueExecutor$Task)
{
java.lang.Throwable v;
java.util.concurrent.RejectedExecutionException v;
org.jboss.threads.EnhancedQueueExecutor v;
java.util.concurrent.Executor v;
org.jboss.threads.EnhancedQueueExecutor$Task v;
java.lang.Runnable v;
v := @this: org.jboss.threads.EnhancedQueueExecutor;
v := @parameter: org.jboss.threads.EnhancedQueueExecutor$Task;
label:
v = v.<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor handoffExecutor>;
v = virtualinvoke v.<org.jboss.threads.EnhancedQueueExecutor$Task: java.lang.Runnable handoff()>();
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.util.concurrent.RejectedExecutionException;
specialinvoke v.<java.util.concurrent.RejectedExecutionException: void <init>(java.lang.String)>("Executor is being shut down");
virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
static java.lang.Runnable nullToNop(java.lang.Runnable)
{
java.lang.Runnable v, v;
v := @parameter: java.lang.Runnable;
if v != null goto label;
v = staticinvoke <org.jboss.threads.NullRunnable: org.jboss.threads.NullRunnable getInstance()>();
goto label;
label:
v = v;
label:
return v;
}
static int wrongType() throws java.lang.ClassCastException
{
java.lang.ClassCastException v;
v = new java.lang.ClassCastException;
specialinvoke v.<java.lang.ClassCastException: void <init>(java.lang.String)>("Wrong task type for comparison");
throw v;
}
static void <clinit>()
{
java.lang.NoSuchFieldError v;
java.lang.NoSuchFieldException v;
java.util.concurrent.atomic.AtomicInteger v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.jboss.threads.NullRunnable v, v, v, v;
org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture[] v;
sun.misc.Unsafe v, v, v, v, v;
long v, v, v, v, v;
short v;
int v, v, v, v, v, v;
org.jboss.threads.Waiter v;
java.lang.String v, v;
org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode v, v;
java.util.concurrent.Executor v;
java.lang.Thread[] v;
java.lang.reflect.Field v, v, v, v, v;
java.util.concurrent.atomic.AtomicLong v;
java.lang.Class v, v, v, v, v, v;
v = class "Lorg/jboss/threads/EnhancedQueueExecutor;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.jboss.threads.EnhancedQueueExecutor: boolean $assertionsDisabled> = v;
v = newarray (java.lang.Thread)[0];
<org.jboss.threads.EnhancedQueueExecutor: java.lang.Thread[] NO_THREADS> = v;
staticinvoke <org.jboss.threads.Version: java.lang.String getVersionString()>();
staticinvoke <org.jboss.threads.EnhancedQueueExecutor$MBeanUnregisterAction: void forceInit()>();
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean readBooleanPropertyPrefixed(java.lang.String,boolean)>("disable", 0);
<org.jboss.threads.EnhancedQueueExecutor: boolean DISABLE_HINT> = v;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean readBooleanPropertyPrefixed(java.lang.String,boolean)>("statistics", 0);
<org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS> = v;
v = <org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_STATISTICS>;
if v != 0 goto label;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean readBooleanPropertyPrefixed(java.lang.String,boolean)>("statistics.active-count", 0);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
<org.jboss.threads.EnhancedQueueExecutor: boolean UPDATE_ACTIVE_COUNT> = v;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean readBooleanPropertyPrefixed(java.lang.String,boolean)>("unlimited-queue", 0);
<org.jboss.threads.EnhancedQueueExecutor: boolean NO_QUEUE_LIMIT> = v;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean readBooleanPropertyPrefixed(java.lang.String,boolean)>("register-mbean", 1);
<org.jboss.threads.EnhancedQueueExecutor: boolean REGISTER_MBEAN> = v;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: java.lang.String readProperty(java.lang.String,java.lang.String)>("org.graalvm.nativeimage.imagecode", null);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: boolean readBooleanPropertyPrefixed(java.lang.String,boolean)>("disable-mbean", v);
<org.jboss.threads.EnhancedQueueExecutor: boolean DISABLE_MBEAN> = v;
v = staticinvoke <org.wildfly.common.cpu.ProcessorInfo: int availableProcessors()>();
if v != 1 goto label;
v = 0;
goto label;
label:
v = 128;
label:
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int readIntPropertyPrefixed(java.lang.String,int)>("park-spins", v);
<org.jboss.threads.EnhancedQueueExecutor: int PARK_SPINS> = v;
v = staticinvoke <org.jboss.threads.EnhancedQueueExecutor: int readIntPropertyPrefixed(java.lang.String,int)>("park-yields", 1);
v = <org.jboss.threads.EnhancedQueueExecutor: int PARK_SPINS>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = staticinvoke <java.lang.Math: int max(int,int)>(v, 0);
<org.jboss.threads.EnhancedQueueExecutor: int YIELD_FACTOR> = v;
v = staticinvoke <org.jboss.threads.JBossExecutors: java.util.concurrent.Executor rejectingExecutor()>();
<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.Executor DEFAULT_HANDLER> = v;
label:
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = class "Lorg/jboss/threads/EnhancedQueueExecutor;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("terminationWaiters");
v = virtualinvoke v.<sun.misc.Unsafe: long objectFieldOffset(java.lang.reflect.Field)>(v);
<org.jboss.threads.EnhancedQueueExecutor: long terminationWaitersOffset> = v;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = class "Lorg/jboss/threads/EnhancedQueueExecutor;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("queueSize");
v = virtualinvoke v.<sun.misc.Unsafe: long objectFieldOffset(java.lang.reflect.Field)>(v);
<org.jboss.threads.EnhancedQueueExecutor: long queueSizeOffset> = v;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = class "Lorg/jboss/threads/EnhancedQueueExecutor;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("peakThreadCount");
v = virtualinvoke v.<sun.misc.Unsafe: long objectFieldOffset(java.lang.reflect.Field)>(v);
<org.jboss.threads.EnhancedQueueExecutor: long peakThreadCountOffset> = v;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = class "Lorg/jboss/threads/EnhancedQueueExecutor;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("activeCount");
v = virtualinvoke v.<sun.misc.Unsafe: long objectFieldOffset(java.lang.reflect.Field)>(v);
<org.jboss.threads.EnhancedQueueExecutor: long activeCountOffset> = v;
v = <org.jboss.threads.JBossExecutors: sun.misc.Unsafe unsafe>;
v = class "Lorg/jboss/threads/EnhancedQueueExecutor;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("peakQueueSize");
v = virtualinvoke v.<sun.misc.Unsafe: long objectFieldOffset(java.lang.reflect.Field)>(v);
<org.jboss.threads.EnhancedQueueExecutor: long peakQueueSizeOffset> = v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.NoSuchFieldError;
v = virtualinvoke v.<java.lang.NoSuchFieldException: java.lang.String getMessage()>();
specialinvoke v.<java.lang.NoSuchFieldError: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$QNode TERMINATE_REQUESTED> = v;
v = new org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode;
specialinvoke v.<org.jboss.threads.EnhancedQueueExecutor$TerminateWaiterNode: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$QNode TERMINATE_COMPLETE> = v;
v = new org.jboss.threads.Waiter;
specialinvoke v.<org.jboss.threads.Waiter: void <init>(org.jboss.threads.Waiter)>(null);
<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.Waiter TERMINATE_COMPLETE_WAITER> = v;
v = new org.jboss.threads.NullRunnable;
specialinvoke v.<org.jboss.threads.NullRunnable: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable WAITING> = v;
v = new org.jboss.threads.NullRunnable;
specialinvoke v.<org.jboss.threads.NullRunnable: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable GAVE_UP> = v;
v = new org.jboss.threads.NullRunnable;
specialinvoke v.<org.jboss.threads.NullRunnable: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable ACCEPTED> = v;
v = new org.jboss.threads.NullRunnable;
specialinvoke v.<org.jboss.threads.NullRunnable: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: java.lang.Runnable EXIT> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(1);
<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.AtomicInteger sequence> = v;
v = newarray (org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture)[0];
<org.jboss.threads.EnhancedQueueExecutor: org.jboss.threads.EnhancedQueueExecutor$AbstractScheduledFuture[] NO_FUTURES> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
<org.jboss.threads.EnhancedQueueExecutor: java.util.concurrent.atomic.AtomicLong SCHEDULED_TASK_SEQ> = v;
return;
catch java.lang.NoSuchFieldException from label to label with label;
}
}