public final class io.netty.channel.nio.NioEventLoop extends io.netty.channel.SingleThreadEventLoop
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.channel.nio.NioEventLoop
super_class: io.netty.channel.SingleThreadEventLoop
{
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 CLEANUP_INTERVAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final boolean DISABLE_KEYSET_OPTIMIZATION;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MIN_PREMATURE_SELECTOR_RETURNS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int SELECTOR_AUTO_REBUILD_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final io.netty.util.IntSupplier selectNowSupplier;
descriptor: Lio/netty/util/IntSupplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.Callable<java.lang.Integer> pendingTasksCallable;
descriptor: Ljava/util/concurrent/Callable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/Callable<Ljava/lang/Integer;>;
static final long MAX_SCHEDULED_DAYS;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1095
private java.nio.channels.Selector selector;
descriptor: Ljava/nio/channels/Selector;
flags: (0x0002) ACC_PRIVATE
private java.nio.channels.Selector unwrappedSelector;
descriptor: Ljava/nio/channels/Selector;
flags: (0x0002) ACC_PRIVATE
private io.netty.channel.nio.SelectedSelectionKeySet selectedKeys;
descriptor: Lio/netty/channel/nio/SelectedSelectionKeySet;
flags: (0x0002) ACC_PRIVATE
private final java.nio.channels.spi.SelectorProvider provider;
descriptor: Ljava/nio/channels/spi/SelectorProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicBoolean wakenUp;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.channel.SelectStrategy selectStrategy;
descriptor: Lio/netty/channel/SelectStrategy;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int ioRatio;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private int cancelledKeys;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean needsToSelectAgain;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=0
0: ldc Lio/netty/channel/nio/NioEventLoop;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
putstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
1: ldc "io.netty.noKeySetOptimization"
iconst_0
invokestatic io.netty.util.internal.SystemPropertyUtil.getBoolean:(Ljava/lang/String;Z)Z
2: putstatic io.netty.channel.nio.NioEventLoop.DISABLE_KEYSET_OPTIMIZATION:Z
3: ldc "sun.nio.ch.bugLevel"
invokestatic io.netty.util.internal.SystemPropertyUtil.get:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 4: aload 0
ifnonnull 9
5: new io.netty.channel.nio.NioEventLoop$3
dup
invokespecial io.netty.channel.nio.NioEventLoop$3.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
6: goto 9
StackMap locals: java.lang.String
StackMap stack: java.lang.SecurityException
7: astore 1
start local 1 8: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Unable to get/set System Property: sun.nio.ch.bugLevel"
aload 1
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 9: StackMap locals:
StackMap stack:
ldc "io.netty.selectorAutoRebuildThreshold"
sipush 512
invokestatic io.netty.util.internal.SystemPropertyUtil.getInt:(Ljava/lang/String;I)I
istore 1
start local 1 10: iload 1
iconst_3
if_icmpge 12
11: iconst_0
istore 1
12: StackMap locals: int
StackMap stack:
iload 1
putstatic io.netty.channel.nio.NioEventLoop.SELECTOR_AUTO_REBUILD_THRESHOLD:I
13: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 16
14: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "-Dio.netty.noKeySetOptimization: {}"
getstatic io.netty.channel.nio.NioEventLoop.DISABLE_KEYSET_OPTIMIZATION:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
15: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "-Dio.netty.selectorAutoRebuildThreshold: {}"
getstatic io.netty.channel.nio.NioEventLoop.SELECTOR_AUTO_REBUILD_THRESHOLD:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
end local 1 end local 0 16: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
4 16 0 buglevel Ljava/lang/String;
8 9 1 e Ljava/lang/SecurityException;
10 16 1 selectorAutoRebuildThreshold I
Exception table:
from to target type
5 6 7 Class java.lang.SecurityException
void <init>(io.netty.channel.nio.NioEventLoopGroup, java.util.concurrent.Executor, java.nio.channels.spi.SelectorProvider, io.netty.channel.SelectStrategy, io.netty.util.concurrent.RejectedExecutionHandler);
descriptor: (Lio/netty/channel/nio/NioEventLoopGroup;Ljava/util/concurrent/Executor;Ljava/nio/channels/spi/SelectorProvider;Lio/netty/channel/SelectStrategy;Lio/netty/util/concurrent/RejectedExecutionHandler;)V
flags: (0x0000)
Code:
stack=6, locals=7, 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
aload 2
iconst_0
getstatic io.netty.channel.nio.NioEventLoop.DEFAULT_MAX_PENDING_TASKS:I
aload 5
invokespecial io.netty.channel.SingleThreadEventLoop.<init>:(Lio/netty/channel/EventLoopGroup;Ljava/util/concurrent/Executor;ZILio/netty/util/concurrent/RejectedExecutionHandler;)V
1: aload 0
new io.netty.channel.nio.NioEventLoop$1
dup
aload 0
invokespecial io.netty.channel.nio.NioEventLoop$1.<init>:(Lio/netty/channel/nio/NioEventLoop;)V
putfield io.netty.channel.nio.NioEventLoop.selectNowSupplier:Lio/netty/util/IntSupplier;
2: aload 0
new io.netty.channel.nio.NioEventLoop$2
dup
aload 0
invokespecial io.netty.channel.nio.NioEventLoop$2.<init>:(Lio/netty/channel/nio/NioEventLoop;)V
putfield io.netty.channel.nio.NioEventLoop.pendingTasksCallable:Ljava/util/concurrent/Callable;
3: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
4: aload 0
bipush 50
putfield io.netty.channel.nio.NioEventLoop.ioRatio:I
5: aload 3
ifnonnull 7
6: new java.lang.NullPointerException
dup
ldc "selectorProvider"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: io.netty.channel.nio.NioEventLoop io.netty.channel.nio.NioEventLoopGroup java.util.concurrent.Executor java.nio.channels.spi.SelectorProvider io.netty.channel.SelectStrategy io.netty.util.concurrent.RejectedExecutionHandler
StackMap stack:
aload 4
ifnonnull 9
8: new java.lang.NullPointerException
dup
ldc "selectStrategy"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield io.netty.channel.nio.NioEventLoop.provider:Ljava/nio/channels/spi/SelectorProvider;
10: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.openSelector:()Lio/netty/channel/nio/NioEventLoop$SelectorTuple;
astore 6
start local 6 11: aload 0
aload 6
getfield io.netty.channel.nio.NioEventLoop$SelectorTuple.selector:Ljava/nio/channels/Selector;
putfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
12: aload 0
aload 6
getfield io.netty.channel.nio.NioEventLoop$SelectorTuple.unwrappedSelector:Ljava/nio/channels/Selector;
putfield io.netty.channel.nio.NioEventLoop.unwrappedSelector:Ljava/nio/channels/Selector;
13: aload 0
aload 4
putfield io.netty.channel.nio.NioEventLoop.selectStrategy:Lio/netty/channel/SelectStrategy;
14: return
end local 6 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 15 0 this Lio/netty/channel/nio/NioEventLoop;
0 15 1 parent Lio/netty/channel/nio/NioEventLoopGroup;
0 15 2 executor Ljava/util/concurrent/Executor;
0 15 3 selectorProvider Ljava/nio/channels/spi/SelectorProvider;
0 15 4 strategy Lio/netty/channel/SelectStrategy;
0 15 5 rejectedExecutionHandler Lio/netty/util/concurrent/RejectedExecutionHandler;
11 15 6 selectorTuple Lio/netty/channel/nio/NioEventLoop$SelectorTuple;
MethodParameters:
Name Flags
parent
executor
selectorProvider
strategy
rejectedExecutionHandler
private io.netty.channel.nio.NioEventLoop$SelectorTuple openSelector();
descriptor: ()Lio/netty/channel/nio/NioEventLoop$SelectorTuple;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.provider:Ljava/nio/channels/spi/SelectorProvider;
invokevirtual java.nio.channels.spi.SelectorProvider.openSelector:()Ljava/nio/channels/spi/AbstractSelector;
astore 1
start local 1 1: goto 4
end local 1 StackMap locals:
StackMap stack: java.io.IOException
2: astore 2
start local 2 3: new io.netty.channel.ChannelException
dup
ldc "failed to open a new selector"
aload 2
invokespecial io.netty.channel.ChannelException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 start local 1 4: StackMap locals: java.nio.channels.Selector
StackMap stack:
getstatic io.netty.channel.nio.NioEventLoop.DISABLE_KEYSET_OPTIMIZATION:Z
ifeq 6
5: new io.netty.channel.nio.NioEventLoop$SelectorTuple
dup
aload 1
invokespecial io.netty.channel.nio.NioEventLoop$SelectorTuple.<init>:(Ljava/nio/channels/Selector;)V
areturn
6: StackMap locals:
StackMap stack:
new io.netty.channel.nio.SelectedSelectionKeySet
dup
invokespecial io.netty.channel.nio.SelectedSelectionKeySet.<init>:()V
astore 2
start local 2 7: new io.netty.channel.nio.NioEventLoop$4
dup
aload 0
invokespecial io.netty.channel.nio.NioEventLoop$4.<init>:(Lio/netty/channel/nio/NioEventLoop;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
astore 3
start local 3 8: aload 3
instanceof java.lang.Class
ifeq 10
9: aload 3
checkcast java.lang.Class
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 14
10: StackMap locals: io.netty.channel.nio.SelectedSelectionKeySet java.lang.Object
StackMap stack:
aload 3
instanceof java.lang.Throwable
ifeq 13
11: aload 3
checkcast java.lang.Throwable
astore 4
start local 4 12: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "failed to instrument a special java.util.Set into: {}"
aload 1
aload 4
invokeinterface io.netty.util.internal.logging.InternalLogger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 13: StackMap locals:
StackMap stack:
new io.netty.channel.nio.NioEventLoop$SelectorTuple
dup
aload 1
invokespecial io.netty.channel.nio.NioEventLoop$SelectorTuple.<init>:(Ljava/nio/channels/Selector;)V
areturn
14: StackMap locals:
StackMap stack:
aload 3
checkcast java.lang.Class
astore 4
start local 4 15: new io.netty.channel.nio.NioEventLoop$5
dup
aload 0
aload 4
aload 1
aload 2
invokespecial io.netty.channel.nio.NioEventLoop$5.<init>:(Lio/netty/channel/nio/NioEventLoop;Ljava/lang/Class;Ljava/nio/channels/Selector;Lio/netty/channel/nio/SelectedSelectionKeySet;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
astore 5
start local 5 16: aload 5
instanceof java.lang.Exception
ifeq 21
17: aload 0
aconst_null
putfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
18: aload 5
checkcast java.lang.Exception
astore 6
start local 6 19: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "failed to instrument a special java.util.Set into: {}"
aload 1
aload 6
invokeinterface io.netty.util.internal.logging.InternalLogger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
20: new io.netty.channel.nio.NioEventLoop$SelectorTuple
dup
aload 1
invokespecial io.netty.channel.nio.NioEventLoop$SelectorTuple.<init>:(Ljava/nio/channels/Selector;)V
areturn
end local 6 21: StackMap locals: java.lang.Class java.lang.Object
StackMap stack:
aload 0
aload 2
putfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
22: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "instrumented a special java.util.Set into: {}"
aload 1
invokeinterface io.netty.util.internal.logging.InternalLogger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
23: new io.netty.channel.nio.NioEventLoop$SelectorTuple
dup
aload 1
24: new io.netty.channel.nio.SelectedSelectionKeySetSelector
dup
aload 1
aload 2
invokespecial io.netty.channel.nio.SelectedSelectionKeySetSelector.<init>:(Ljava/nio/channels/Selector;Lio/netty/channel/nio/SelectedSelectionKeySet;)V
25: invokespecial io.netty.channel.nio.NioEventLoop$SelectorTuple.<init>:(Ljava/nio/channels/Selector;Ljava/nio/channels/Selector;)V
areturn
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 26 0 this Lio/netty/channel/nio/NioEventLoop;
1 2 1 unwrappedSelector Ljava/nio/channels/Selector;
4 26 1 unwrappedSelector Ljava/nio/channels/Selector;
3 4 2 e Ljava/io/IOException;
7 26 2 selectedKeySet Lio/netty/channel/nio/SelectedSelectionKeySet;
8 26 3 maybeSelectorImplClass Ljava/lang/Object;
12 13 4 t Ljava/lang/Throwable;
15 26 4 selectorImplClass Ljava/lang/Class<*>;
16 26 5 maybeException Ljava/lang/Object;
19 21 6 e Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.io.IOException
public java.nio.channels.spi.SelectorProvider selectorProvider();
descriptor: ()Ljava/nio/channels/spi/SelectorProvider;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.provider:Ljava/nio/channels/spi/SelectorProvider;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/nio/NioEventLoop;
protected java.util.Queue<java.lang.Runnable> newTaskQueue(int);
descriptor: (I)Ljava/util/Queue;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ldc 2147483647
if_icmpne 1
invokestatic io.netty.util.internal.PlatformDependent.newMpscQueue:()Ljava/util/Queue;
goto 2
1: StackMap locals:
StackMap stack:
iload 1
invokestatic io.netty.util.internal.PlatformDependent.newMpscQueue:(I)Ljava/util/Queue;
2: StackMap locals:
StackMap stack: java.util.Queue
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/channel/nio/NioEventLoop;
0 3 1 maxPendingTasks I
Signature: (I)Ljava/util/Queue<Ljava/lang/Runnable;>;
MethodParameters:
Name Flags
maxPendingTasks
public int pendingTasks();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.inEventLoop:()Z
ifeq 2
1: aload 0
invokespecial io.netty.channel.SingleThreadEventLoop.pendingTasks:()I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.netty.channel.nio.NioEventLoop.pendingTasksCallable:Ljava/util/concurrent/Callable;
invokevirtual io.netty.channel.nio.NioEventLoop.submit:(Ljava/util/concurrent/Callable;)Lio/netty/util/concurrent/Future;
invokeinterface io.netty.util.concurrent.Future.syncUninterruptibly:()Lio/netty/util/concurrent/Future;
invokeinterface io.netty.util.concurrent.Future.getNow:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/channel/nio/NioEventLoop;
public void register(java.nio.channels.SelectableChannel, int, io.netty.channel.nio.NioTask<?>);
descriptor: (Ljava/nio/channels/SelectableChannel;ILio/netty/channel/nio/NioTask;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "ch"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifne 4
3: new java.lang.IllegalArgumentException
dup
ldc "interestOps must be non-zero."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 2
aload 1
invokevirtual java.nio.channels.SelectableChannel.validOps:()I
iconst_m1
ixor
iand
ifeq 8
5: new java.lang.IllegalArgumentException
dup
6: new java.lang.StringBuilder
dup
ldc "invalid interestOps: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "(validOps: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.nio.channels.SelectableChannel.validOps:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 3
ifnonnull 10
9: new java.lang.NullPointerException
dup
ldc "task"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.isShutdown:()Z
ifeq 12
11: new java.lang.IllegalStateException
dup
ldc "event loop shut down"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
iload 2
aload 3
invokevirtual java.nio.channels.SelectableChannel.register:(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
pop
13: goto 16
StackMap locals:
StackMap stack: java.lang.Exception
14: astore 4
start local 4 15: new io.netty.channel.EventLoopException
dup
ldc "failed to register a channel"
aload 4
invokespecial io.netty.channel.EventLoopException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 16: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/channel/nio/NioEventLoop;
0 17 1 ch Ljava/nio/channels/SelectableChannel;
0 17 2 interestOps I
0 17 3 task Lio/netty/channel/nio/NioTask<*>;
15 16 4 e Ljava/lang/Exception;
Exception table:
from to target type
12 13 14 Class java.lang.Exception
Signature: (Ljava/nio/channels/SelectableChannel;ILio/netty/channel/nio/NioTask<*>;)V
MethodParameters:
Name Flags
ch final
interestOps final
task final
public int getIoRatio();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.ioRatio:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/nio/NioEventLoop;
public void setIoRatio(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifle 1
iload 1
bipush 100
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "ioRatio: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (expected: 0 < ioRatio <= 100)"
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:
aload 0
iload 1
putfield io.netty.channel.nio.NioEventLoop.ioRatio:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/channel/nio/NioEventLoop;
0 4 1 ioRatio I
MethodParameters:
Name Flags
ioRatio
public void rebuildSelector();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.inEventLoop:()Z
ifne 3
1: aload 0
new io.netty.channel.nio.NioEventLoop$6
dup
aload 0
invokespecial io.netty.channel.nio.NioEventLoop$6.<init>:(Lio/netty/channel/nio/NioEventLoop;)V
invokevirtual io.netty.channel.nio.NioEventLoop.execute:(Ljava/lang/Runnable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.rebuildSelector0:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/channel/nio/NioEventLoop;
private void rebuildSelector0();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: return
3: StackMap locals: java.nio.channels.Selector
StackMap stack:
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.openSelector:()Lio/netty/channel/nio/NioEventLoop$SelectorTuple;
astore 2
start local 2 4: goto 8
end local 2 StackMap locals:
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to create a new Selector."
aload 3
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
7: return
end local 3 start local 2 8: StackMap locals: io.netty.channel.nio.NioEventLoop$SelectorTuple
StackMap stack:
iconst_0
istore 3
start local 3 9: aload 1
invokevirtual java.nio.channels.Selector.keys:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 29
StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.Selector io.netty.channel.nio.NioEventLoop$SelectorTuple int top java.util.Iterator
StackMap stack:
10: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.channels.SelectionKey
astore 4
start local 4 11: aload 4
invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
astore 6
start local 6 12: aload 4
invokevirtual java.nio.channels.SelectionKey.isValid:()Z
ifeq 29
aload 4
invokevirtual java.nio.channels.SelectionKey.channel:()Ljava/nio/channels/SelectableChannel;
aload 2
getfield io.netty.channel.nio.NioEventLoop$SelectorTuple.unwrappedSelector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.SelectableChannel.keyFor:(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
ifnull 14
13: goto 29
14: StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.Selector io.netty.channel.nio.NioEventLoop$SelectorTuple int java.nio.channels.SelectionKey java.util.Iterator java.lang.Object
StackMap stack:
aload 4
invokevirtual java.nio.channels.SelectionKey.interestOps:()I
istore 7
start local 7 15: aload 4
invokevirtual java.nio.channels.SelectionKey.cancel:()V
16: aload 4
invokevirtual java.nio.channels.SelectionKey.channel:()Ljava/nio/channels/SelectableChannel;
aload 2
getfield io.netty.channel.nio.NioEventLoop$SelectorTuple.unwrappedSelector:Ljava/nio/channels/Selector;
iload 7
aload 6
invokevirtual java.nio.channels.SelectableChannel.register:(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
astore 8
start local 8 17: aload 6
instanceof io.netty.channel.nio.AbstractNioChannel
ifeq 19
18: aload 6
checkcast io.netty.channel.nio.AbstractNioChannel
aload 8
putfield io.netty.channel.nio.AbstractNioChannel.selectionKey:Ljava/nio/channels/SelectionKey;
19: StackMap locals: int java.nio.channels.SelectionKey
StackMap stack:
iinc 3 1
end local 8 end local 7 20: goto 29
StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.Selector io.netty.channel.nio.NioEventLoop$SelectorTuple int java.nio.channels.SelectionKey java.util.Iterator java.lang.Object
StackMap stack: java.lang.Exception
21: astore 7
start local 7 22: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to re-register a Channel to the new Selector."
aload 7
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
23: aload 6
instanceof io.netty.channel.nio.AbstractNioChannel
ifeq 27
24: aload 6
checkcast io.netty.channel.nio.AbstractNioChannel
astore 8
start local 8 25: aload 8
invokevirtual io.netty.channel.nio.AbstractNioChannel.unsafe:()Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
aload 8
invokevirtual io.netty.channel.nio.AbstractNioChannel.unsafe:()Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
end local 8 26: goto 29
27: StackMap locals: java.lang.Exception
StackMap stack:
aload 6
checkcast io.netty.channel.nio.NioTask
astore 8
start local 8 28: aload 8
aload 4
aload 7
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
end local 8 end local 7 end local 6 end local 4 29: StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.Selector io.netty.channel.nio.NioEventLoop$SelectorTuple int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
30: aload 0
aload 2
getfield io.netty.channel.nio.NioEventLoop$SelectorTuple.selector:Ljava/nio/channels/Selector;
putfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
31: aload 0
aload 2
getfield io.netty.channel.nio.NioEventLoop$SelectorTuple.unwrappedSelector:Ljava/nio/channels/Selector;
putfield io.netty.channel.nio.NioEventLoop.unwrappedSelector:Ljava/nio/channels/Selector;
32: aload 1
invokevirtual java.nio.channels.Selector.close:()V
33: goto 37
StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.Selector io.netty.channel.nio.NioEventLoop$SelectorTuple int
StackMap stack: java.lang.Throwable
34: astore 4
start local 4 35: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isWarnEnabled:()Z
ifeq 37
36: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to close the old Selector."
aload 4
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 37: StackMap locals:
StackMap stack:
getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
new java.lang.StringBuilder
dup
ldc "Migrated "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " channel(s) to the new Selector."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.netty.util.internal.logging.InternalLogger.info:(Ljava/lang/String;)V
38: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lio/netty/channel/nio/NioEventLoop;
1 39 1 oldSelector Ljava/nio/channels/Selector;
4 5 2 newSelectorTuple Lio/netty/channel/nio/NioEventLoop$SelectorTuple;
8 39 2 newSelectorTuple Lio/netty/channel/nio/NioEventLoop$SelectorTuple;
6 8 3 e Ljava/lang/Exception;
9 39 3 nChannels I
11 29 4 key Ljava/nio/channels/SelectionKey;
12 29 6 a Ljava/lang/Object;
15 20 7 interestOps I
17 20 8 newKey Ljava/nio/channels/SelectionKey;
22 29 7 e Ljava/lang/Exception;
25 26 8 ch Lio/netty/channel/nio/AbstractNioChannel;
28 29 8 task Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;
35 37 4 t Ljava/lang/Throwable;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
12 13 21 Class java.lang.Exception
14 20 21 Class java.lang.Exception
32 33 34 Class java.lang.Throwable
protected void run();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.nio.NioEventLoop.selectStrategy:Lio/netty/channel/SelectStrategy;
aload 0
getfield io.netty.channel.nio.NioEventLoop.selectNowSupplier:Lio/netty/util/IntSupplier;
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.hasTasks:()Z
invokeinterface io.netty.channel.SelectStrategy.calculateStrategy:(Lio/netty/util/IntSupplier;Z)I
tableswitch { // -2 - -1
-2: 1
-1: 2
default: 5
}
1: StackMap locals:
StackMap stack:
goto 0
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.getAndSet:(Z)Z
invokevirtual io.netty.channel.nio.NioEventLoop.select:(Z)V
3: aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 5
4: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
pop
5: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.netty.channel.nio.NioEventLoop.cancelledKeys:I
6: aload 0
iconst_0
putfield io.netty.channel.nio.NioEventLoop.needsToSelectAgain:Z
7: aload 0
getfield io.netty.channel.nio.NioEventLoop.ioRatio:I
istore 1
start local 1 8: iload 1
bipush 100
if_icmpne 16
9: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.processSelectedKeys:()V
10: goto 14
StackMap locals: io.netty.channel.nio.NioEventLoop int
StackMap stack: java.lang.Throwable
11: astore 2
12: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.runAllTasks:()Z
pop
13: aload 2
athrow
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.runAllTasks:()Z
pop
15: goto 28
16: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 2
start local 2 17: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.processSelectedKeys:()V
18: goto 23
StackMap locals: io.netty.channel.nio.NioEventLoop int long
StackMap stack: java.lang.Throwable
19: astore 4
20: invokestatic java.lang.System.nanoTime:()J
lload 2
lsub
lstore 5
start local 5 21: aload 0
lload 5
bipush 100
iload 1
isub
i2l
lmul
iload 1
i2l
ldiv
invokevirtual io.netty.channel.nio.NioEventLoop.runAllTasks:(J)Z
pop
end local 5 22: aload 4
athrow
23: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lload 2
lsub
lstore 5
start local 5 24: aload 0
lload 5
bipush 100
iload 1
isub
i2l
lmul
iload 1
i2l
ldiv
invokevirtual io.netty.channel.nio.NioEventLoop.runAllTasks:(J)Z
pop
end local 5 end local 2 end local 1 25: goto 28
StackMap locals: io.netty.channel.nio.NioEventLoop
StackMap stack: java.lang.Throwable
26: astore 1
start local 1 27: aload 1
invokestatic io.netty.channel.nio.NioEventLoop.handleLoopException:(Ljava/lang/Throwable;)V
end local 1 28: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.isShuttingDown:()Z
ifeq 0
29: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.closeAll:()V
30: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.confirmShutdown:()Z
ifeq 0
31: return
32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 33: aload 1
invokestatic io.netty.channel.nio.NioEventLoop.handleLoopException:(Ljava/lang/Throwable;)V
end local 1 34: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lio/netty/channel/nio/NioEventLoop;
8 25 1 ioRatio I
17 25 2 ioStartTime J
21 22 5 ioTime J
24 25 5 ioTime J
27 28 1 t Ljava/lang/Throwable;
33 34 1 t Ljava/lang/Throwable;
Exception table:
from to target type
9 11 11 any
17 19 19 any
0 1 26 Class java.lang.Throwable
2 25 26 Class java.lang.Throwable
28 31 32 Class java.lang.Throwable
private static void handleLoopException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Unexpected exception in the selector loop."
aload 0
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
1: ldc 1000
invokestatic java.lang.Thread.sleep:(J)V
2: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 t Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
MethodParameters:
Name Flags
t
private void processSelectedKeys();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
ifnull 3
1: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.selectedKeys:()Ljava/util/Set;
invokevirtual io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain:(Ljava/util/Set;)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/channel/nio/NioEventLoop;
protected void cleanup();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.close:()V
1: goto 4
StackMap locals:
StackMap stack: java.io.IOException
2: astore 1
start local 1 3: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to close a selector."
aload 1
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/channel/nio/NioEventLoop;
3 4 1 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
void cancel(java.nio.channels.SelectionKey);
descriptor: (Ljava/nio/channels/SelectionKey;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.channels.SelectionKey.cancel:()V
1: aload 0
dup
getfield io.netty.channel.nio.NioEventLoop.cancelledKeys:I
iconst_1
iadd
putfield io.netty.channel.nio.NioEventLoop.cancelledKeys:I
2: aload 0
getfield io.netty.channel.nio.NioEventLoop.cancelledKeys:I
sipush 256
if_icmplt 5
3: aload 0
iconst_0
putfield io.netty.channel.nio.NioEventLoop.cancelledKeys:I
4: aload 0
iconst_1
putfield io.netty.channel.nio.NioEventLoop.needsToSelectAgain:Z
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/nio/NioEventLoop;
0 6 1 key Ljava/nio/channels/SelectionKey;
MethodParameters:
Name Flags
key
protected java.lang.Runnable pollTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokespecial io.netty.channel.SingleThreadEventLoop.pollTask:()Ljava/lang/Runnable;
astore 1
start local 1 1: aload 0
getfield io.netty.channel.nio.NioEventLoop.needsToSelectAgain:Z
ifeq 3
2: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.selectAgain:()V
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 this Lio/netty/channel/nio/NioEventLoop;
1 4 1 task Ljava/lang/Runnable;
private void processSelectedKeysPlain(java.util.Set<java.nio.channels.SelectionKey>);
descriptor: (Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Set.isEmpty:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
start local 2 3: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.channels.SelectionKey
astore 3
start local 3 4: aload 3
invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
astore 4
start local 4 5: aload 2
invokeinterface java.util.Iterator.remove:()V
6: aload 4
instanceof io.netty.channel.nio.AbstractNioChannel
ifeq 9
7: aload 0
aload 3
aload 4
checkcast io.netty.channel.nio.AbstractNioChannel
invokevirtual io.netty.channel.nio.NioEventLoop.processSelectedKey:(Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/AbstractNioChannel;)V
8: goto 11
9: StackMap locals: java.nio.channels.SelectionKey java.lang.Object
StackMap stack:
aload 4
checkcast io.netty.channel.nio.NioTask
astore 5
start local 5 10: aload 3
aload 5
invokestatic io.netty.channel.nio.NioEventLoop.processSelectedKey:(Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/NioTask;)V
end local 5 11: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
12: goto 20
13: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.nio.NioEventLoop.needsToSelectAgain:Z
ifeq 3
14: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.selectAgain:()V
15: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.selectedKeys:()Ljava/util/Set;
astore 1
16: aload 1
invokeinterface java.util.Set.isEmpty:()Z
ifeq 18
17: goto 20
18: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
end local 4 end local 3 19: goto 3
20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/netty/channel/nio/NioEventLoop;
0 21 1 selectedKeys Ljava/util/Set<Ljava/nio/channels/SelectionKey;>;
3 21 2 i Ljava/util/Iterator<Ljava/nio/channels/SelectionKey;>;
4 19 3 k Ljava/nio/channels/SelectionKey;
5 19 4 a Ljava/lang/Object;
10 11 5 task Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;
Signature: (Ljava/util/Set<Ljava/nio/channels/SelectionKey;>;)V
MethodParameters:
Name Flags
selectedKeys
private void processSelectedKeysOptimized();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 15
2: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
getfield io.netty.channel.nio.SelectedSelectionKeySet.keys:[Ljava/nio/channels/SelectionKey;
iload 1
aaload
astore 2
start local 2 3: aload 0
getfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
getfield io.netty.channel.nio.SelectedSelectionKeySet.keys:[Ljava/nio/channels/SelectionKey;
iload 1
aconst_null
aastore
4: aload 2
invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
astore 3
start local 3 5: aload 3
instanceof io.netty.channel.nio.AbstractNioChannel
ifeq 8
6: aload 0
aload 2
aload 3
checkcast io.netty.channel.nio.AbstractNioChannel
invokevirtual io.netty.channel.nio.NioEventLoop.processSelectedKey:(Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/AbstractNioChannel;)V
7: goto 10
8: StackMap locals: java.nio.channels.SelectionKey java.lang.Object
StackMap stack:
aload 3
checkcast io.netty.channel.nio.NioTask
astore 4
start local 4 9: aload 2
aload 4
invokestatic io.netty.channel.nio.NioEventLoop.processSelectedKey:(Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/NioTask;)V
end local 4 10: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.nio.NioEventLoop.needsToSelectAgain:Z
ifeq 14
11: aload 0
getfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
iload 1
iconst_1
iadd
invokevirtual io.netty.channel.nio.SelectedSelectionKeySet.reset:(I)V
12: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.selectAgain:()V
13: iconst_m1
istore 1
end local 3 end local 2 14: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
15: iload 1
aload 0
getfield io.netty.channel.nio.NioEventLoop.selectedKeys:Lio/netty/channel/nio/SelectedSelectionKeySet;
getfield io.netty.channel.nio.SelectedSelectionKeySet.size:I
if_icmplt 2
end local 1 16: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/channel/nio/NioEventLoop;
1 16 1 i I
3 14 2 k Ljava/nio/channels/SelectionKey;
5 14 3 a Ljava/lang/Object;
9 10 4 task Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;
private void processSelectedKey(java.nio.channels.SelectionKey, io.netty.channel.nio.AbstractNioChannel);
descriptor: (Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/AbstractNioChannel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual io.netty.channel.nio.AbstractNioChannel.unsafe:()Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
astore 3
start local 3 1: aload 1
invokevirtual java.nio.channels.SelectionKey.isValid:()Z
ifne 10
2: aload 2
invokevirtual io.netty.channel.nio.AbstractNioChannel.eventLoop:()Lio/netty/channel/nio/NioEventLoop;
astore 4
start local 4 3: goto 6
end local 4 StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.SelectionKey io.netty.channel.nio.AbstractNioChannel io.netty.channel.nio.AbstractNioChannel$NioUnsafe
StackMap stack: java.lang.Throwable
4: pop
5: return
start local 4 6: StackMap locals: io.netty.channel.EventLoop
StackMap stack:
aload 4
aload 0
if_acmpne 7
aload 4
ifnonnull 8
7: StackMap locals:
StackMap stack:
return
8: StackMap locals:
StackMap stack:
aload 3
aload 3
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
9: return
end local 4 10: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.channels.SelectionKey.readyOps:()I
istore 4
start local 4 11: iload 4
bipush 8
iand
ifeq 16
12: aload 1
invokevirtual java.nio.channels.SelectionKey.interestOps:()I
istore 5
start local 5 13: iload 5
bipush -9
iand
istore 5
14: aload 1
iload 5
invokevirtual java.nio.channels.SelectionKey.interestOps:(I)Ljava/nio/channels/SelectionKey;
pop
15: aload 3
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.finishConnect:()V
end local 5 16: StackMap locals: int
StackMap stack:
iload 4
iconst_4
iand
ifeq 18
17: aload 2
invokevirtual io.netty.channel.nio.AbstractNioChannel.unsafe:()Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.forceFlush:()V
18: StackMap locals:
StackMap stack:
iload 4
bipush 17
iand
ifne 19
iload 4
ifne 23
19: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.read:()V
end local 4 20: goto 23
StackMap locals: io.netty.channel.nio.NioEventLoop java.nio.channels.SelectionKey io.netty.channel.nio.AbstractNioChannel io.netty.channel.nio.AbstractNioChannel$NioUnsafe
StackMap stack: java.nio.channels.CancelledKeyException
21: pop
22: aload 3
aload 3
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
23: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/netty/channel/nio/NioEventLoop;
0 24 1 k Ljava/nio/channels/SelectionKey;
0 24 2 ch Lio/netty/channel/nio/AbstractNioChannel;
1 24 3 unsafe Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
3 4 4 eventLoop Lio/netty/channel/EventLoop;
6 10 4 eventLoop Lio/netty/channel/EventLoop;
11 20 4 readyOps I
13 16 5 ops I
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
10 20 21 Class java.nio.channels.CancelledKeyException
MethodParameters:
Name Flags
k
ch
private static void processSelectedKey(java.nio.channels.SelectionKey, io.netty.channel.nio.NioTask<java.nio.channels.SelectableChannel>);
descriptor: (Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/NioTask;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
aload 0
invokevirtual java.nio.channels.SelectionKey.channel:()Ljava/nio/channels/SelectableChannel;
aload 0
invokeinterface io.netty.channel.nio.NioTask.channelReady:(Ljava/nio/channels/SelectableChannel;Ljava/nio/channels/SelectionKey;)V
2: iconst_1
istore 2
3: goto 23
StackMap locals: java.nio.channels.SelectionKey io.netty.channel.nio.NioTask int
StackMap stack: java.lang.Exception
4: astore 3
start local 3 5: aload 0
invokevirtual java.nio.channels.SelectionKey.cancel:()V
6: aload 1
aload 0
aload 3
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
7: iconst_2
istore 2
end local 3 8: iload 2
tableswitch { // 0 - 1
0: 9
1: 12
default: 14
}
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.channels.SelectionKey.cancel:()V
10: aload 1
aload 0
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
11: goto 29
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.channels.SelectionKey.isValid:()Z
ifne 29
13: aload 1
aload 0
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
14: StackMap locals:
StackMap stack:
goto 29
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
16: iload 2
tableswitch { // 0 - 1
0: 17
1: 20
default: 22
}
17: StackMap locals: java.nio.channels.SelectionKey io.netty.channel.nio.NioTask int top java.lang.Throwable
StackMap stack:
aload 0
invokevirtual java.nio.channels.SelectionKey.cancel:()V
18: aload 1
aload 0
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
19: goto 22
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.channels.SelectionKey.isValid:()Z
ifne 22
21: aload 1
aload 0
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
22: StackMap locals:
StackMap stack:
aload 4
athrow
23: StackMap locals: java.nio.channels.SelectionKey io.netty.channel.nio.NioTask int
StackMap stack:
iload 2
tableswitch { // 0 - 1
0: 24
1: 27
default: 29
}
24: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.channels.SelectionKey.cancel:()V
25: aload 1
aload 0
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
26: goto 29
27: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.channels.SelectionKey.isValid:()Z
ifne 29
28: aload 1
aload 0
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 k Ljava/nio/channels/SelectionKey;
0 30 1 task Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;
1 30 2 state I
5 8 3 e Ljava/lang/Exception;
Exception table:
from to target type
1 3 4 Class java.lang.Exception
1 8 15 any
Signature: (Ljava/nio/channels/SelectionKey;Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;)V
MethodParameters:
Name Flags
k
task
private void closeAll();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.selectAgain:()V
1: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.keys:()Ljava/util/Set;
astore 1
start local 1 2: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.Set.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 3: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: io.netty.channel.nio.NioEventLoop java.util.Set java.util.Collection top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.channels.SelectionKey
astore 3
start local 3 5: aload 3
invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
astore 5
start local 5 6: aload 5
instanceof io.netty.channel.nio.AbstractNioChannel
ifeq 9
7: aload 2
aload 5
checkcast io.netty.channel.nio.AbstractNioChannel
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
8: goto 12
9: StackMap locals: io.netty.channel.nio.NioEventLoop java.util.Set java.util.Collection java.nio.channels.SelectionKey java.util.Iterator java.lang.Object
StackMap stack:
aload 3
invokevirtual java.nio.channels.SelectionKey.cancel:()V
10: aload 5
checkcast io.netty.channel.nio.NioTask
astore 6
start local 6 11: aload 6
aload 3
aconst_null
invokestatic io.netty.channel.nio.NioEventLoop.invokeChannelUnregistered:(Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
end local 6 end local 5 end local 3 12: StackMap locals: io.netty.channel.nio.NioEventLoop java.util.Set java.util.Collection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
13: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 16
StackMap locals:
StackMap stack:
14: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.nio.AbstractNioChannel
astore 3
start local 3 15: aload 3
invokevirtual io.netty.channel.nio.AbstractNioChannel.unsafe:()Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
aload 3
invokevirtual io.netty.channel.nio.AbstractNioChannel.unsafe:()Lio/netty/channel/nio/AbstractNioChannel$NioUnsafe;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.nio.AbstractNioChannel$NioUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
end local 3 16: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/netty/channel/nio/NioEventLoop;
2 18 1 keys Ljava/util/Set<Ljava/nio/channels/SelectionKey;>;
3 18 2 channels Ljava/util/Collection<Lio/netty/channel/nio/AbstractNioChannel;>;
5 12 3 k Ljava/nio/channels/SelectionKey;
6 12 5 a Ljava/lang/Object;
11 12 6 task Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;
15 16 3 ch Lio/netty/channel/nio/AbstractNioChannel;
private static void invokeChannelUnregistered(io.netty.channel.nio.NioTask<java.nio.channels.SelectableChannel>, java.nio.channels.SelectionKey, java.lang.Throwable);
descriptor: (Lio/netty/channel/nio/NioTask;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.nio.channels.SelectionKey.channel:()Ljava/nio/channels/SelectableChannel;
aload 2
invokeinterface io.netty.channel.nio.NioTask.channelUnregistered:(Ljava/nio/channels/SelectableChannel;Ljava/lang/Throwable;)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.Exception
2: astore 3
start local 3 3: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Unexpected exception while running NioTask.channelUnregistered()"
aload 3
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 task Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;
0 5 1 k Ljava/nio/channels/SelectionKey;
0 5 2 cause Ljava/lang/Throwable;
3 4 3 e Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
Signature: (Lio/netty/channel/nio/NioTask<Ljava/nio/channels/SelectableChannel;>;Ljava/nio/channels/SelectionKey;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
task
k
cause
protected void wakeup(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 2
1: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
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/channel/nio/NioEventLoop;
0 3 1 inEventLoop Z
MethodParameters:
Name Flags
inEventLoop
java.nio.channels.Selector unwrappedSelector();
descriptor: ()Ljava/nio/channels/Selector;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.unwrappedSelector:Ljava/nio/channels/Selector;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/nio/NioEventLoop;
int selectNow();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.selectNow:()I
istore 2
1: aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 3
2: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
pop
3: StackMap locals: io.netty.channel.nio.NioEventLoop top int
StackMap stack:
iload 2
ireturn
4: StackMap locals: io.netty.channel.nio.NioEventLoop
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 7
6: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
pop
7: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/channel/nio/NioEventLoop;
Exception table:
from to target type
0 1 4 any
Exceptions:
throws java.io.IOException
private void select(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: invokestatic java.lang.System.nanoTime:()J
lstore 4
start local 4 3: lload 4
aload 0
lload 4
invokevirtual io.netty.channel.nio.NioEventLoop.delayNanos:(J)J
ladd
lstore 6
start local 6 4: StackMap locals: io.netty.channel.nio.NioEventLoop int java.nio.channels.Selector int long long
StackMap stack:
lload 6
lload 4
lsub
ldc 500000
ladd
ldc 1000000
ldiv
lstore 8
start local 8 5: lload 8
lconst_0
lcmp
ifgt 10
6: iload 3
ifne 40
7: aload 2
invokevirtual java.nio.channels.Selector.selectNow:()I
pop
8: iconst_1
istore 3
9: goto 40
10: StackMap locals: long
StackMap stack:
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.hasTasks:()Z
ifeq 14
aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 14
11: aload 2
invokevirtual java.nio.channels.Selector.selectNow:()I
pop
12: iconst_1
istore 3
13: goto 40
14: StackMap locals:
StackMap stack:
aload 2
lload 8
invokevirtual java.nio.channels.Selector.select:(J)I
istore 10
start local 10 15: iinc 3 1
16: iload 10
ifne 40
iload 1
ifne 40
aload 0
getfield io.netty.channel.nio.NioEventLoop.wakenUp:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifne 40
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.hasTasks:()Z
ifne 40
aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.hasScheduledTasks:()Z
ifeq 18
17: goto 40
18: StackMap locals: int
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifeq 23
19: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 21
20: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Selector.select() returned prematurely because Thread.currentThread().interrupt() was called. Use NioEventLoop.shutdownGracefully() to shutdown the NioEventLoop."
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
21: StackMap locals:
StackMap stack:
iconst_1
istore 3
22: goto 40
23: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 11
start local 11 24: lload 11
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
lload 8
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lsub
lload 4
lcmp
iflt 27
25: iconst_1
istore 3
26: goto 38
StackMap locals: long
StackMap stack:
27: getstatic io.netty.channel.nio.NioEventLoop.SELECTOR_AUTO_REBUILD_THRESHOLD:I
ifle 38
28: iload 3
getstatic io.netty.channel.nio.NioEventLoop.SELECTOR_AUTO_REBUILD_THRESHOLD:I
if_icmplt 38
29: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
30: ldc "Selector.select() returned prematurely {} times in a row; rebuilding Selector {}."
31: iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
32: invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
33: aload 0
invokevirtual io.netty.channel.nio.NioEventLoop.rebuildSelector:()V
34: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
astore 2
35: aload 2
invokevirtual java.nio.channels.Selector.selectNow:()I
pop
36: iconst_1
istore 3
37: goto 40
38: StackMap locals:
StackMap stack:
lload 11
lstore 4
end local 11 end local 10 end local 8 39: goto 4
40: StackMap locals:
StackMap stack:
iload 3
iconst_3
if_icmple 51
41: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 51
42: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Selector.select() returned prematurely {} times in a row for Selector {}."
43: iload 3
iconst_1
isub
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
44: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 6 end local 4 end local 3 45: goto 51
StackMap locals: io.netty.channel.nio.NioEventLoop int java.nio.channels.Selector
StackMap stack: java.nio.channels.CancelledKeyException
46: astore 3
start local 3 47: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 51
48: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
new java.lang.StringBuilder
dup
ldc Ljava/nio/channels/CancelledKeyException;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " raised by a Selector {} - JDK bug?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
49: aload 2
aload 3
50: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 51: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lio/netty/channel/nio/NioEventLoop;
0 52 1 oldWakenUp Z
1 52 2 selector Ljava/nio/channels/Selector;
2 45 3 selectCnt I
3 45 4 currentTimeNanos J
4 45 6 selectDeadLineNanos J
5 39 8 timeoutMillis J
15 39 10 selectedKeys I
24 39 11 time J
47 51 3 e Ljava/nio/channels/CancelledKeyException;
Exception table:
from to target type
1 45 46 Class java.nio.channels.CancelledKeyException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
oldWakenUp
private void selectAgain();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
putfield io.netty.channel.nio.NioEventLoop.needsToSelectAgain:Z
1: aload 0
getfield io.netty.channel.nio.NioEventLoop.selector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.selectNow:()I
pop
2: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
start local 1 4: getstatic io.netty.channel.nio.NioEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to update SelectionKeys."
aload 1
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/nio/NioEventLoop;
4 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
protected void validateScheduled(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toDays:(J)J
lstore 4
start local 4 1: lload 4
ldc 1095
lcmp
ifle 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "days: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " (expected: < "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc 1095
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: long
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/channel/nio/NioEventLoop;
0 4 1 amount J
0 4 3 unit Ljava/util/concurrent/TimeUnit;
1 4 4 days J
MethodParameters:
Name Flags
amount
unit
static int access$0(io.netty.channel.nio.NioEventLoop);
descriptor: (Lio/netty/channel/nio/NioEventLoop;)I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial io.netty.channel.SingleThreadEventLoop.pendingTasks:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "NioEventLoop.java"
NestMembers:
io.netty.channel.nio.NioEventLoop$1 io.netty.channel.nio.NioEventLoop$2 io.netty.channel.nio.NioEventLoop$3 io.netty.channel.nio.NioEventLoop$4 io.netty.channel.nio.NioEventLoop$5 io.netty.channel.nio.NioEventLoop$6 io.netty.channel.nio.NioEventLoop$SelectorTuple
InnerClasses:
public abstract NioUnsafe = io.netty.channel.nio.AbstractNioChannel$NioUnsafe of io.netty.channel.nio.AbstractNioChannel
io.netty.channel.nio.NioEventLoop$1
io.netty.channel.nio.NioEventLoop$2
io.netty.channel.nio.NioEventLoop$3
io.netty.channel.nio.NioEventLoop$4
io.netty.channel.nio.NioEventLoop$5
io.netty.channel.nio.NioEventLoop$6
private final SelectorTuple = io.netty.channel.nio.NioEventLoop$SelectorTuple of io.netty.channel.nio.NioEventLoop