public abstract class io.netty.util.concurrent.SingleThreadEventExecutor extends io.netty.util.concurrent.AbstractScheduledEventExecutor implements io.netty.util.concurrent.OrderedEventExecutor
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: io.netty.util.concurrent.SingleThreadEventExecutor
super_class: io.netty.util.concurrent.AbstractScheduledEventExecutor
{
static final int DEFAULT_MAX_PENDING_EXECUTOR_TASKS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final io.netty.util.internal.logging.InternalLogger logger;
descriptor: Lio/netty/util/internal/logging/InternalLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ST_NOT_STARTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ST_STARTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ST_SHUTTING_DOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int ST_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int ST_TERMINATED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final java.lang.Runnable WAKEUP_TASK;
descriptor: Ljava/lang/Runnable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Runnable NOOP_TASK;
descriptor: Ljava/lang/Runnable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.netty.util.concurrent.SingleThreadEventExecutor> STATE_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/netty/util/concurrent/SingleThreadEventExecutor;>;
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<io.netty.util.concurrent.SingleThreadEventExecutor, io.netty.util.concurrent.ThreadProperties> PROPERTIES_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lio/netty/util/concurrent/SingleThreadEventExecutor;Lio/netty/util/concurrent/ThreadProperties;>;
private final java.util.Queue<java.lang.Runnable> taskQueue;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Ljava/lang/Runnable;>;
private volatile java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile io.netty.util.concurrent.ThreadProperties threadProperties;
descriptor: Lio/netty/util/concurrent/ThreadProperties;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean interrupted;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.Semaphore threadLock;
descriptor: Ljava/util/concurrent/Semaphore;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.Runnable> shutdownHooks;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Runnable;>;
private final boolean addTaskWakesUp;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxPendingTasks;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler;
descriptor: Lio/netty/util/concurrent/RejectedExecutionHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long lastExecutionTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private volatile int state;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long gracefulShutdownQuietPeriod;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long gracefulShutdownTimeout;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private long gracefulShutdownStartTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final io.netty.util.concurrent.Promise<?> terminationFuture;
descriptor: Lio/netty/util/concurrent/Promise;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/util/concurrent/Promise<*>;
private static final long SCHEDULE_PURGE_INTERVAL;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
3: bipush 16
4: ldc "io.netty.eventexecutor.maxPendingTasks"
ldc 2147483647
invokestatic io.netty.util.internal.SystemPropertyUtil.getInt:(Ljava/lang/String;I)I
5: invokestatic java.lang.Math.max:(II)I
putstatic io.netty.util.concurrent.SingleThreadEventExecutor.DEFAULT_MAX_PENDING_EXECUTOR_TASKS:I
6: ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
7: putstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
8: new io.netty.util.concurrent.SingleThreadEventExecutor$1
dup
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor$1.<init>:()V
putstatic io.netty.util.concurrent.SingleThreadEventExecutor.WAKEUP_TASK:Ljava/lang/Runnable;
9: new io.netty.util.concurrent.SingleThreadEventExecutor$2
dup
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor$2.<init>:()V
putstatic io.netty.util.concurrent.SingleThreadEventExecutor.NOOP_TASK:Ljava/lang/Runnable;
10: ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
ldc "state"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
11: putstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
12: ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
ldc Lio/netty/util/concurrent/ThreadProperties;
ldc "threadProperties"
13: invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
14: putstatic io.netty.util.concurrent.SingleThreadEventExecutor.PROPERTIES_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
15: getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
lconst_1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putstatic io.netty.util.concurrent.SingleThreadEventExecutor.SCHEDULE_PURGE_INTERVAL:J
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(io.netty.util.concurrent.EventExecutorGroup, java.util.concurrent.ThreadFactory, boolean);
descriptor: (Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/ThreadFactory;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
new io.netty.util.concurrent.ThreadPerTaskExecutor
dup
aload 2
invokespecial io.netty.util.concurrent.ThreadPerTaskExecutor.<init>:(Ljava/util/concurrent/ThreadFactory;)V
iload 3
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor.<init>:(Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/Executor;Z)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 parent Lio/netty/util/concurrent/EventExecutorGroup;
0 2 2 threadFactory Ljava/util/concurrent/ThreadFactory;
0 2 3 addTaskWakesUp Z
MethodParameters:
Name Flags
parent
threadFactory
addTaskWakesUp
protected void <init>(io.netty.util.concurrent.EventExecutorGroup, java.util.concurrent.ThreadFactory, boolean, int, io.netty.util.concurrent.RejectedExecutionHandler);
descriptor: (Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/ThreadFactory;ZILio/netty/util/concurrent/RejectedExecutionHandler;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
new io.netty.util.concurrent.ThreadPerTaskExecutor
dup
aload 2
invokespecial io.netty.util.concurrent.ThreadPerTaskExecutor.<init>:(Ljava/util/concurrent/ThreadFactory;)V
iload 3
iload 4
aload 5
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor.<init>:(Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/Executor;ZILio/netty/util/concurrent/RejectedExecutionHandler;)V
1: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 parent Lio/netty/util/concurrent/EventExecutorGroup;
0 2 2 threadFactory Ljava/util/concurrent/ThreadFactory;
0 2 3 addTaskWakesUp Z
0 2 4 maxPendingTasks I
0 2 5 rejectedHandler Lio/netty/util/concurrent/RejectedExecutionHandler;
MethodParameters:
Name Flags
parent
threadFactory
addTaskWakesUp
maxPendingTasks
rejectedHandler
protected void <init>(io.netty.util.concurrent.EventExecutorGroup, java.util.concurrent.Executor, boolean);
descriptor: (Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/Executor;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.DEFAULT_MAX_PENDING_EXECUTOR_TASKS:I
invokestatic io.netty.util.concurrent.RejectedExecutionHandlers.reject:()Lio/netty/util/concurrent/RejectedExecutionHandler;
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor.<init>:(Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/Executor;ZILio/netty/util/concurrent/RejectedExecutionHandler;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 parent Lio/netty/util/concurrent/EventExecutorGroup;
0 2 2 executor Ljava/util/concurrent/Executor;
0 2 3 addTaskWakesUp Z
MethodParameters:
Name Flags
parent
executor
addTaskWakesUp
protected void <init>(io.netty.util.concurrent.EventExecutorGroup, java.util.concurrent.Executor, boolean, int, io.netty.util.concurrent.RejectedExecutionHandler);
descriptor: (Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/Executor;ZILio/netty/util/concurrent/RejectedExecutionHandler;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
invokespecial io.netty.util.concurrent.AbstractScheduledEventExecutor.<init>:(Lio/netty/util/concurrent/EventExecutorGroup;)V
1: aload 0
new java.util.concurrent.Semaphore
dup
iconst_0
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
putfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
2: aload 0
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield io.netty.util.concurrent.SingleThreadEventExecutor.shutdownHooks:Ljava/util/Set;
3: aload 0
iconst_1
putfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
4: aload 0
new io.netty.util.concurrent.DefaultPromise
dup
getstatic io.netty.util.concurrent.GlobalEventExecutor.INSTANCE:Lio/netty/util/concurrent/GlobalEventExecutor;
invokespecial io.netty.util.concurrent.DefaultPromise.<init>:(Lio/netty/util/concurrent/EventExecutor;)V
putfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
5: aload 0
iload 3
putfield io.netty.util.concurrent.SingleThreadEventExecutor.addTaskWakesUp:Z
6: aload 0
bipush 16
iload 4
invokestatic java.lang.Math.max:(II)I
putfield io.netty.util.concurrent.SingleThreadEventExecutor.maxPendingTasks:I
7: aload 0
aload 2
ldc "executor"
invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.concurrent.Executor
putfield io.netty.util.concurrent.SingleThreadEventExecutor.executor:Ljava/util/concurrent/Executor;
8: aload 0
aload 0
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.maxPendingTasks:I
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.newTaskQueue:(I)Ljava/util/Queue;
putfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
9: aload 0
aload 5
ldc "rejectedHandler"
invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast io.netty.util.concurrent.RejectedExecutionHandler
putfield io.netty.util.concurrent.SingleThreadEventExecutor.rejectedExecutionHandler:Lio/netty/util/concurrent/RejectedExecutionHandler;
10: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 11 1 parent Lio/netty/util/concurrent/EventExecutorGroup;
0 11 2 executor Ljava/util/concurrent/Executor;
0 11 3 addTaskWakesUp Z
0 11 4 maxPendingTasks I
0 11 5 rejectedHandler Lio/netty/util/concurrent/RejectedExecutionHandler;
MethodParameters:
Name Flags
parent
executor
addTaskWakesUp
maxPendingTasks
rejectedHandler
protected java.util.Queue<java.lang.Runnable> newTaskQueue();
descriptor: ()Ljava/util/Queue;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.maxPendingTasks:I
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.newTaskQueue:(I)Ljava/util/Queue;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
Signature: ()Ljava/util/Queue<Ljava/lang/Runnable;>;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
protected java.util.Queue<java.lang.Runnable> newTaskQueue(int);
descriptor: (I)Ljava/util/Queue;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.util.concurrent.LinkedBlockingQueue
dup
iload 1
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 1 1 maxPendingTasks I
Signature: (I)Ljava/util/Queue<Ljava/lang/Runnable;>;
MethodParameters:
Name Flags
maxPendingTasks
protected void interruptThread();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: aload 0
iconst_1
putfield io.netty.util.concurrent.SingleThreadEventExecutor.interrupted:Z
3: goto 5
4: StackMap locals: java.lang.Thread
StackMap stack:
aload 1
invokevirtual java.lang.Thread.interrupt:()V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
1 6 1 currentThread Ljava/lang/Thread;
protected java.lang.Runnable pollTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.pollTaskFrom:(Ljava/util/Queue;)Ljava/lang/Runnable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected static java.lang.Runnable pollTaskFrom(java.util.Queue<java.lang.Runnable>);
descriptor: (Ljava/util/Queue;)Ljava/lang/Runnable;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 1
start local 1 1: aload 1
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.WAKEUP_TASK:Ljava/lang/Runnable;
if_acmpne 3
2: goto 0
3: StackMap locals: java.lang.Runnable
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 taskQueue Ljava/util/Queue<Ljava/lang/Runnable;>;
1 4 1 task Ljava/lang/Runnable;
Signature: (Ljava/util/Queue<Ljava/lang/Runnable;>;)Ljava/lang/Runnable;
MethodParameters:
Name Flags
taskQueue
protected java.lang.Runnable takeTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=1
start local 0 0: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
instanceof java.util.concurrent.BlockingQueue
ifne 3
2: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
checkcast java.util.concurrent.BlockingQueue
astore 1
start local 1 4: StackMap locals: java.util.concurrent.BlockingQueue
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.peekScheduledTask:()Lio/netty/util/concurrent/ScheduledFutureTask;
astore 2
start local 2 5: aload 2
ifnonnull 13
6: aconst_null
astore 3
start local 3 7: aload 1
invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 3
8: aload 3
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.WAKEUP_TASK:Ljava/lang/Runnable;
if_acmpne 12
9: aconst_null
astore 3
10: goto 12
StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor java.util.concurrent.BlockingQueue io.netty.util.concurrent.ScheduledFutureTask java.lang.Runnable
StackMap stack: java.lang.InterruptedException
11: pop
12: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 13: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.util.concurrent.ScheduledFutureTask.delayNanos:()J
lstore 3
start local 3 14: aconst_null
astore 5
start local 5 15: lload 3
lconst_0
lcmp
ifle 20
16: aload 1
lload 3
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.BlockingQueue.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
checkcast java.lang.Runnable
astore 5
17: goto 20
StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor java.util.concurrent.BlockingQueue io.netty.util.concurrent.ScheduledFutureTask long java.lang.Runnable
StackMap stack: java.lang.InterruptedException
18: pop
19: aconst_null
areturn
20: StackMap locals:
StackMap stack:
aload 5
ifnonnull 23
21: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.fetchFromScheduledTaskQueue:()Z
pop
22: aload 1
invokeinterface java.util.concurrent.BlockingQueue.poll:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 5
23: StackMap locals:
StackMap stack:
aload 5
ifnull 4
24: aload 5
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
4 25 1 taskQueue Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
5 25 2 scheduledTask Lio/netty/util/concurrent/ScheduledFutureTask<*>;
7 13 3 task Ljava/lang/Runnable;
14 25 3 delayNanos J
15 25 5 task Ljava/lang/Runnable;
Exception table:
from to target type
7 10 11 Class java.lang.InterruptedException
16 17 18 Class java.lang.InterruptedException
private boolean fetchFromScheduledTaskQueue();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: invokestatic io.netty.util.concurrent.AbstractScheduledEventExecutor.nanoTime:()J
lstore 1
start local 1 1: aload 0
lload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.pollScheduledTask:(J)Ljava/lang/Runnable;
astore 3
start local 3 2: goto 7
3: StackMap locals: long java.lang.Runnable
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
aload 3
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
ifne 6
4: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.scheduledTaskQueue:()Lio/netty/util/internal/PriorityQueue;
aload 3
checkcast io.netty.util.concurrent.ScheduledFutureTask
invokeinterface io.netty.util.internal.PriorityQueue.add:(Ljava/lang/Object;)Z
pop
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.pollScheduledTask:(J)Ljava/lang/Runnable;
astore 3
7: StackMap locals:
StackMap stack:
aload 3
ifnonnull 3
8: iconst_1
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
1 9 1 nanoTime J
2 9 3 scheduledTask Ljava/lang/Runnable;
protected java.lang.Runnable peekTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.peek:()Ljava/lang/Object;
checkcast java.lang.Runnable
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected boolean hasTasks();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
public int pendingTasks();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected void addTask(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "task"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.offerTask:(Ljava/lang/Runnable;)Z
ifne 4
3: aload 0
aload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.reject:(Ljava/lang/Runnable;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 5 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task
final boolean offerTask(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Z
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShutdown:()Z
ifeq 2
1: invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.reject:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 3 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task
protected boolean removeTask(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "task"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 3 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task
protected boolean runAllTasks();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 2: StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor top int
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.fetchFromScheduledTaskQueue:()Z
istore 1
start local 1 3: aload 0
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasksFrom:(Ljava/util/Queue;)Z
ifeq 5
4: iconst_1
istore 2
5: StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor int int
StackMap stack:
iload 1
ifeq 2
6: iload 2
ifeq 8
7: aload 0
invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
putfield io.netty.util.concurrent.SingleThreadEventExecutor.lastExecutionTime:J
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.afterRunningAllTasks:()V
9: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
3 10 1 fetchedAll Z
2 10 2 ranAtLeastOne Z
protected final boolean runAllTasksFrom(java.util.Queue<java.lang.Runnable>);
descriptor: (Ljava/util/Queue;)Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.pollTaskFrom:(Ljava/util/Queue;)Ljava/lang/Runnable;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.Runnable
StackMap stack:
aload 2
invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.safeExecute:(Ljava/lang/Runnable;)V
4: aload 1
invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.pollTaskFrom:(Ljava/util/Queue;)Ljava/lang/Runnable;
astore 2
5: aload 2
ifnonnull 3
6: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 7 1 taskQueue Ljava/util/Queue<Ljava/lang/Runnable;>;
1 7 2 task Ljava/lang/Runnable;
Signature: (Ljava/util/Queue<Ljava/lang/Runnable;>;)Z
MethodParameters:
Name Flags
taskQueue
protected boolean runAllTasks(long);
descriptor: (J)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.fetchFromScheduledTaskQueue:()Z
pop
1: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.pollTask:()Ljava/lang/Runnable;
astore 3
start local 3 2: aload 3
ifnonnull 5
3: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.afterRunningAllTasks:()V
4: iconst_0
ireturn
5: StackMap locals: java.lang.Runnable
StackMap stack:
invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
lload 1
ladd
lstore 4
start local 4 6: lconst_0
lstore 6
start local 6 7: StackMap locals: long long
StackMap stack:
aload 3
invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.safeExecute:(Ljava/lang/Runnable;)V
8: lload 6
lconst_1
ladd
lstore 6
9: lload 6
ldc 63
land
lconst_0
lcmp
ifne 13
10: invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
lstore 8
start local 8 11: lload 8
lload 4
lcmp
iflt 13
12: goto 16
end local 8 13: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.pollTask:()Ljava/lang/Runnable;
astore 3
14: aload 3
ifnonnull 7
15: invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
lstore 8
start local 8 16: StackMap locals: long
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.afterRunningAllTasks:()V
17: aload 0
lload 8
putfield io.netty.util.concurrent.SingleThreadEventExecutor.lastExecutionTime:J
18: iconst_1
ireturn
end local 8 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 19 1 timeoutNanos J
2 19 3 task Ljava/lang/Runnable;
6 19 4 deadline J
7 19 6 runTasks J
11 13 8 lastExecutionTime J
16 19 8 lastExecutionTime J
MethodParameters:
Name Flags
timeoutNanos
protected void afterRunningAllTasks();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected long delayNanos(long);
descriptor: (J)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.peekScheduledTask:()Lio/netty/util/concurrent/ScheduledFutureTask;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.SCHEDULE_PURGE_INTERVAL:J
lreturn
3: StackMap locals: io.netty.util.concurrent.ScheduledFutureTask
StackMap stack:
aload 3
lload 1
invokevirtual io.netty.util.concurrent.ScheduledFutureTask.delayNanos:(J)J
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 4 1 currentTimeNanos J
1 4 3 scheduledTask Lio/netty/util/concurrent/ScheduledFutureTask<*>;
MethodParameters:
Name Flags
currentTimeNanos
protected void updateLastExecutionTime();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
putfield io.netty.util.concurrent.SingleThreadEventExecutor.lastExecutionTime:J
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected abstract void run();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected void cleanup();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected void wakeup(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
iconst_3
if_icmpne 2
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.WAKEUP_TASK:Ljava/lang/Runnable;
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 3 1 inEventLoop Z
MethodParameters:
Name Flags
inEventLoop
public boolean inEventLoop(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 thread Ljava/lang/Thread;
MethodParameters:
Name Flags
thread
public void addShutdownHook(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifeq 3
1: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.shutdownHooks:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
new io.netty.util.concurrent.SingleThreadEventExecutor$3
dup
aload 0
aload 1
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor$3.<init>:(Lio/netty/util/concurrent/SingleThreadEventExecutor;Ljava/lang/Runnable;)V
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.execute:(Ljava/lang/Runnable;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 5 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task final
public void removeShutdownHook(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifeq 3
1: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.shutdownHooks:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
new io.netty.util.concurrent.SingleThreadEventExecutor$4
dup
aload 0
aload 1
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor$4.<init>:(Lio/netty/util/concurrent/SingleThreadEventExecutor;Ljava/lang/Runnable;)V
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.execute:(Ljava/lang/Runnable;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 5 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task final
private boolean runShutdownHooks();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 16
2: StackMap locals: int
StackMap stack:
new java.util.ArrayList
dup
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.shutdownHooks:Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 3: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.shutdownHooks:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor int java.util.List top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 3
start local 3 6: aload 3
invokeinterface java.lang.Runnable.run:()V
7: goto 14
StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor int java.util.List java.lang.Runnable java.util.Iterator
StackMap stack: java.lang.Throwable
8: astore 5
start local 5 9: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Shutdown hook raised an exception."
aload 5
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 5 10: iconst_1
istore 1
goto 15
11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
12: iconst_1
istore 1
13: aload 6
athrow
14: StackMap locals:
StackMap stack:
iconst_1
istore 1
end local 3 15: StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor int java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 16: StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor int
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.shutdownHooks:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifeq 2
17: iload 1
ifeq 19
18: aload 0
invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
putfield io.netty.util.concurrent.SingleThreadEventExecutor.lastExecutionTime:J
19: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
1 20 1 ran Z
3 16 2 copy Ljava/util/List<Ljava/lang/Runnable;>;
6 15 3 task Ljava/lang/Runnable;
9 10 5 t Ljava/lang/Throwable;
Exception table:
from to target type
6 7 8 Class java.lang.Throwable
6 10 11 any
public io.netty.util.concurrent.Future<?> shutdownGracefully(long, long, java.util.concurrent.TimeUnit);
descriptor: (JJLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 3 start local 5 0: lload 1
lconst_0
lcmp
ifge 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "quietPeriod: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " (expected >= 0)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
lload 3
lload 1
lcmp
ifge 6
3: new java.lang.IllegalArgumentException
dup
4: new java.lang.StringBuilder
dup
ldc "timeout: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " (expected >= quietPeriod ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "))"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 5
ifnonnull 8
7: new java.lang.NullPointerException
dup
ldc "unit"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShuttingDown:()Z
ifeq 10
9: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:()Lio/netty/util/concurrent/Future;
areturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
istore 6
start local 6 11: StackMap locals: int
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShuttingDown:()Z
ifeq 13
12: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:()Lio/netty/util/concurrent/Future;
areturn
13: StackMap locals:
StackMap stack:
iconst_1
istore 7
start local 7 14: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
istore 8
start local 8 15: iload 6
ifeq 18
16: iconst_3
istore 9
start local 9 17: goto 23
end local 9 18: StackMap locals: int int
StackMap stack:
iload 8
tableswitch { // 1 - 2
1: 19
2: 19
default: 21
}
19: StackMap locals:
StackMap stack:
iconst_3
istore 9
start local 9 20: goto 23
end local 9 21: StackMap locals:
StackMap stack:
iload 8
istore 9
start local 9 22: iconst_0
istore 7
23: StackMap locals: int
StackMap stack:
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 8
iload 9
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 11
end local 9 24: aload 0
aload 5
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownQuietPeriod:J
25: aload 0
aload 5
lload 3
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownTimeout:J
26: iload 8
iconst_1
if_icmpne 35
27: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.doStartThread:()V
28: goto 35
StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor long long java.util.concurrent.TimeUnit int int int
StackMap stack: java.lang.Throwable
29: astore 9
start local 9 30: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_5
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
31: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
aload 9
invokeinterface io.netty.util.concurrent.Promise.tryFailure:(Ljava/lang/Throwable;)Z
pop
32: aload 9
instanceof java.lang.Exception
ifne 34
33: aload 9
invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
34: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
areturn
end local 9 35: StackMap locals:
StackMap stack:
iload 7
ifeq 37
36: aload 0
iload 6
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.wakeup:(Z)V
37: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:()Lio/netty/util/concurrent/Future;
areturn
end local 8 end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 38 1 quietPeriod J
0 38 3 timeout J
0 38 5 unit Ljava/util/concurrent/TimeUnit;
11 38 6 inEventLoop Z
14 38 7 wakeup Z
15 38 8 oldState I
17 18 9 newState I
20 21 9 newState I
22 24 9 newState I
30 35 9 cause Ljava/lang/Throwable;
Exception table:
from to target type
27 28 29 Class java.lang.Throwable
Signature: (JJLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/Future<*>;
MethodParameters:
Name Flags
quietPeriod
timeout
unit
public io.netty.util.concurrent.Future<?> terminationFuture();
descriptor: ()Lio/netty/util/concurrent/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
Signature: ()Lio/netty/util/concurrent/Future<*>;
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShutdown:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
istore 1
start local 1 3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShuttingDown:()Z
ifeq 5
4: return
5: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 6: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
istore 3
start local 3 7: iload 1
ifeq 10
8: iconst_4
istore 4
start local 4 9: goto 15
end local 4 10: StackMap locals: int int
StackMap stack:
iload 3
tableswitch { // 1 - 3
1: 11
2: 11
3: 11
default: 13
}
11: StackMap locals:
StackMap stack:
iconst_4
istore 4
start local 4 12: goto 15
end local 4 13: StackMap locals:
StackMap stack:
iload 3
istore 4
start local 4 14: iconst_0
istore 2
15: StackMap locals: int
StackMap stack:
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 3
iload 4
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 3
end local 4 16: iload 3
iconst_1
if_icmpne 25
17: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.doStartThread:()V
18: goto 25
StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor int int int
StackMap stack: java.lang.Throwable
19: astore 4
start local 4 20: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_5
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
21: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
aload 4
invokeinterface io.netty.util.concurrent.Promise.tryFailure:(Ljava/lang/Throwable;)Z
pop
22: aload 4
instanceof java.lang.Exception
ifne 24
23: aload 4
invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
24: StackMap locals: java.lang.Throwable
StackMap stack:
return
end local 4 25: StackMap locals:
StackMap stack:
iload 2
ifeq 27
26: aload 0
iload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.wakeup:(Z)V
27: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
3 28 1 inEventLoop Z
6 28 2 wakeup Z
7 28 3 oldState I
9 10 4 newState I
12 13 4 newState I
14 16 4 newState I
20 25 4 cause Ljava/lang/Throwable;
Exception table:
from to target type
17 18 19 Class java.lang.Throwable
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public boolean isShuttingDown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
iconst_3
if_icmplt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
public boolean isShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
iconst_4
if_icmplt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
public boolean isTerminated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
iconst_5
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
protected boolean confirmShutdown();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShuttingDown:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifne 4
3: new java.lang.IllegalStateException
dup
ldc "must be invoked from an event loop"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cancelScheduledTasks:()V
5: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownStartTime:J
lconst_0
lcmp
ifne 7
6: aload 0
invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
putfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownStartTime:J
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks:()Z
ifne 8
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.runShutdownHooks:()Z
ifeq 14
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShutdown:()Z
ifeq 10
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownQuietPeriod:J
lconst_0
lcmp
ifne 12
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.wakeup:(Z)V
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
invokestatic io.netty.util.concurrent.ScheduledFutureTask.nanoTime:()J
lstore 1
start local 1 15: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShutdown:()Z
ifne 16
lload 1
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownStartTime:J
lsub
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownTimeout:J
lcmp
ifle 17
16: StackMap locals: long
StackMap stack:
iconst_1
ireturn
17: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.lastExecutionTime:J
lsub
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownQuietPeriod:J
lcmp
ifgt 23
18: aload 0
iconst_1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.wakeup:(Z)V
19: ldc 100
invokestatic java.lang.Thread.sleep:(J)V
20: goto 22
StackMap locals:
StackMap stack: java.lang.InterruptedException
21: pop
22: StackMap locals:
StackMap stack:
iconst_0
ireturn
23: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
15 24 1 nanoTime J
Exception table:
from to target type
19 20 21 Class java.lang.InterruptedException
public boolean awaitTermination(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 3
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "unit"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifeq 4
3: new java.lang.IllegalStateException
dup
ldc "cannot await termination of the current thread"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
lload 1
aload 3
invokevirtual java.util.concurrent.Semaphore.tryAcquire:(JLjava/util/concurrent/TimeUnit;)Z
ifeq 6
5: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isTerminated:()Z
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 7 1 timeout J
0 7 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
timeout
unit
public void execute(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "task"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
istore 2
start local 2 3: aload 0
aload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.addTask:(Ljava/lang/Runnable;)V
4: iload 2
ifne 8
5: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.startThread:()V
6: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.isShutdown:()Z
ifeq 8
aload 0
aload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.removeTask:(Ljava/lang/Runnable;)Z
ifeq 8
7: invokestatic io.netty.util.concurrent.SingleThreadEventExecutor.reject:()V
8: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.addTaskWakesUp:Z
ifne 10
aload 0
aload 1
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.wakesUpForTask:(Ljava/lang/Runnable;)Z
ifeq 10
9: aload 0
iload 2
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.wakeup:(Z)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 11 1 task Ljava/lang/Runnable;
3 11 2 inEventLoop Z
MethodParameters:
Name Flags
task
public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>);
descriptor: (Ljava/util/Collection;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "invokeAny"
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.throwIfInEventLoop:(Ljava/lang/String;)V
1: aload 0
aload 1
invokespecial io.netty.util.concurrent.AbstractScheduledEventExecutor.invokeAny:(Ljava/util/Collection;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 tasks Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;)TT;
MethodParameters:
Name Flags
tasks
public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit);
descriptor: (Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
ldc "invokeAny"
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.throwIfInEventLoop:(Ljava/lang/String;)V
1: aload 0
aload 1
lload 2
aload 4
invokespecial io.netty.util.concurrent.AbstractScheduledEventExecutor.invokeAny:(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 tasks Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
0 2 2 timeout J
0 2 4 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;JLjava/util/concurrent/TimeUnit;)TT;
MethodParameters:
Name Flags
tasks
timeout
unit
public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>);
descriptor: (Ljava/util/Collection;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "invokeAll"
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.throwIfInEventLoop:(Ljava/lang/String;)V
1: aload 0
aload 1
invokespecial io.netty.util.concurrent.AbstractScheduledEventExecutor.invokeAll:(Ljava/util/Collection;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 tasks Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
Exceptions:
throws java.lang.InterruptedException
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;)Ljava/util/List<Ljava/util/concurrent/Future<TT;>;>;
MethodParameters:
Name Flags
tasks
public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit);
descriptor: (Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
ldc "invokeAll"
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.throwIfInEventLoop:(Ljava/lang/String;)V
1: aload 0
aload 1
lload 2
aload 4
invokespecial io.netty.util.concurrent.AbstractScheduledEventExecutor.invokeAll:(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 tasks Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
0 2 2 timeout J
0 2 4 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;JLjava/util/concurrent/TimeUnit;)Ljava/util/List<Ljava/util/concurrent/Future<TT;>;>;
MethodParameters:
Name Flags
tasks
timeout
unit
private void throwIfInEventLoop(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifeq 2
1: new java.util.concurrent.RejectedExecutionException
dup
new java.lang.StringBuilder
dup
ldc "Calling "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " from within the EventLoop is not allowed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 3 1 method Ljava/lang/String;
MethodParameters:
Name Flags
method
public final io.netty.util.concurrent.ThreadProperties threadProperties();
descriptor: ()Lio/netty/util/concurrent/ThreadProperties;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadProperties:Lio/netty/util/concurrent/ThreadProperties;
astore 1
start local 1 1: aload 1
ifnonnull 11
2: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
astore 2
start local 2 3: aload 2
ifnonnull 8
4: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 5
aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.inEventLoop:()Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: io.netty.util.concurrent.ThreadProperties java.lang.Thread
StackMap stack:
aload 0
getstatic io.netty.util.concurrent.SingleThreadEventExecutor.NOOP_TASK:Ljava/lang/Runnable;
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.submit:(Ljava/lang/Runnable;)Lio/netty/util/concurrent/Future;
invokeinterface io.netty.util.concurrent.Future.syncUninterruptibly:()Lio/netty/util/concurrent/Future;
pop
6: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
astore 2
7: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 8
aload 2
ifnonnull 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
new io.netty.util.concurrent.SingleThreadEventExecutor$DefaultThreadProperties
dup
aload 2
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor$DefaultThreadProperties.<init>:(Ljava/lang/Thread;)V
astore 1
9: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.PROPERTIES_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 11
10: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadProperties:Lio/netty/util/concurrent/ThreadProperties;
astore 1
end local 2 11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
1 12 1 threadProperties Lio/netty/util/concurrent/ThreadProperties;
3 11 2 thread Ljava/lang/Thread;
protected boolean wakesUpForTask(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 1 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task
protected static void reject();
descriptor: ()V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.concurrent.RejectedExecutionException
dup
ldc "event executor terminated"
invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
protected final void reject(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.rejectedExecutionHandler:Lio/netty/util/concurrent/RejectedExecutionHandler;
aload 1
aload 0
invokeinterface io.netty.util.concurrent.RejectedExecutionHandler.rejected:(Ljava/lang/Runnable;Lio/netty/util/concurrent/SingleThreadEventExecutor;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
0 2 1 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
task
private void startThread();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
iconst_1
if_icmpne 7
1: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
iconst_2
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 7
2: aload 0
invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.doStartThread:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
start local 1 5: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
6: aload 1
invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
5 7 1 cause Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
private void doStartThread();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic io.netty.util.concurrent.SingleThreadEventExecutor.$assertionsDisabled:Z
ifne 1
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
ifnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.util.concurrent.SingleThreadEventExecutor.executor:Ljava/util/concurrent/Executor;
new io.netty.util.concurrent.SingleThreadEventExecutor$5
dup
aload 0
invokespecial io.netty.util.concurrent.SingleThreadEventExecutor$5.<init>:(Lio/netty/util/concurrent/SingleThreadEventExecutor;)V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/util/concurrent/SingleThreadEventExecutor;
}
SourceFile: "SingleThreadEventExecutor.java"
NestMembers:
io.netty.util.concurrent.SingleThreadEventExecutor$1 io.netty.util.concurrent.SingleThreadEventExecutor$2 io.netty.util.concurrent.SingleThreadEventExecutor$3 io.netty.util.concurrent.SingleThreadEventExecutor$4 io.netty.util.concurrent.SingleThreadEventExecutor$5 io.netty.util.concurrent.SingleThreadEventExecutor$DefaultThreadProperties
InnerClasses:
io.netty.util.concurrent.SingleThreadEventExecutor$1
io.netty.util.concurrent.SingleThreadEventExecutor$2
io.netty.util.concurrent.SingleThreadEventExecutor$3
io.netty.util.concurrent.SingleThreadEventExecutor$4
io.netty.util.concurrent.SingleThreadEventExecutor$5
private final DefaultThreadProperties = io.netty.util.concurrent.SingleThreadEventExecutor$DefaultThreadProperties of io.netty.util.concurrent.SingleThreadEventExecutor