public class io.netty.channel.ThreadPerChannelEventLoopGroup extends io.netty.util.concurrent.AbstractEventExecutorGroup implements io.netty.channel.EventLoopGroup
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.channel.ThreadPerChannelEventLoopGroup
super_class: io.netty.util.concurrent.AbstractEventExecutorGroup
{
private final java.lang.Object[] childArgs;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxChannels;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0010) ACC_FINAL
final java.util.Set<io.netty.channel.EventLoop> activeChildren;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Lio/netty/channel/EventLoop;>;
final java.util.Queue<io.netty.channel.EventLoop> idleChildren;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lio/netty/channel/EventLoop;>;
private final io.netty.channel.ChannelException tooManyChannels;
descriptor: Lio/netty/channel/ChannelException;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean shuttingDown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
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 final io.netty.util.concurrent.FutureListener<java.lang.Object> childTerminationListener;
descriptor: Lio/netty/util/concurrent/FutureListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/util/concurrent/FutureListener<Ljava/lang/Object;>;
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial io.netty.channel.ThreadPerChannelEventLoopGroup.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
protected void <init>(int);
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
iconst_0
anewarray java.lang.Object
invokespecial io.netty.channel.ThreadPerChannelEventLoopGroup.<init>:(ILjava/util/concurrent/ThreadFactory;[Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 2 1 maxChannels I
MethodParameters:
Name Flags
maxChannels
protected void <init>(int, java.util.concurrent.ThreadFactory, java.lang.Object[]);
descriptor: (ILjava/util/concurrent/ThreadFactory;[Ljava/lang/Object;)V
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
new io.netty.util.concurrent.ThreadPerTaskExecutor
dup
aload 2
invokespecial io.netty.util.concurrent.ThreadPerTaskExecutor.<init>:(Ljava/util/concurrent/ThreadFactory;)V
aload 3
invokespecial io.netty.channel.ThreadPerChannelEventLoopGroup.<init>:(ILjava/util/concurrent/Executor;[Ljava/lang/Object;)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/channel/ThreadPerChannelEventLoopGroup;
0 2 1 maxChannels I
0 2 2 threadFactory Ljava/util/concurrent/ThreadFactory;
0 2 3 args [Ljava/lang/Object;
MethodParameters:
Name Flags
maxChannels
threadFactory
args
protected void <init>(int, java.util.concurrent.Executor, java.lang.Object[]);
descriptor: (ILjava/util/concurrent/Executor;[Ljava/lang/Object;)V
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial io.netty.util.concurrent.AbstractEventExecutorGroup.<init>:()V
1: aload 0
2: invokestatic io.netty.util.internal.PlatformDependent.newConcurrentHashMap:()Ljava/util/concurrent/ConcurrentMap;
invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
3: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
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.channel.ThreadPerChannelEventLoopGroup.terminationFuture:Lio/netty/util/concurrent/Promise;
5: aload 0
new io.netty.channel.ThreadPerChannelEventLoopGroup$1
dup
aload 0
invokespecial io.netty.channel.ThreadPerChannelEventLoopGroup$1.<init>:(Lio/netty/channel/ThreadPerChannelEventLoopGroup;)V
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.childTerminationListener:Lio/netty/util/concurrent/FutureListener;
6: iload 1
ifge 10
7: new java.lang.IllegalArgumentException
dup
8: ldc "maxChannels: %d (expected: >= 0)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
9: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup int java.util.concurrent.Executor java.lang.Object[]
StackMap stack:
aload 2
ifnonnull 12
11: new java.lang.NullPointerException
dup
ldc "executor"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 3
ifnonnull 15
13: aload 0
getstatic io.netty.util.internal.EmptyArrays.EMPTY_OBJECTS:[Ljava/lang/Object;
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.childArgs:[Ljava/lang/Object;
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
checkcast java.lang.Object[]
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.childArgs:[Ljava/lang/Object;
16: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.maxChannels:I
17: aload 0
aload 2
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.executor:Ljava/util/concurrent/Executor;
18: aload 0
19: new io.netty.channel.ChannelException
dup
new java.lang.StringBuilder
dup
ldc "too many channels (max: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
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;
invokespecial io.netty.channel.ChannelException.<init>:(Ljava/lang/String;)V
20: ldc Lio/netty/channel/ThreadPerChannelEventLoopGroup;
ldc "nextChild()"
21: invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
checkcast io.netty.channel.ChannelException
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.tooManyChannels:Lio/netty/channel/ChannelException;
22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 23 1 maxChannels I
0 23 2 executor Ljava/util/concurrent/Executor;
0 23 3 args [Ljava/lang/Object;
MethodParameters:
Name Flags
maxChannels
executor
args
protected io.netty.channel.EventLoop newChild(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Lio/netty/channel/EventLoop;
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new io.netty.channel.ThreadPerChannelEventLoop
dup
aload 0
invokespecial io.netty.channel.ThreadPerChannelEventLoop.<init>:(Lio/netty/channel/ThreadPerChannelEventLoopGroup;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 1 1 args [Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
args
public java.util.Iterator<io.netty.util.concurrent.EventExecutor> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new io.netty.util.internal.ReadOnlyIterator
dup
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokespecial io.netty.util.internal.ReadOnlyIterator.<init>:(Ljava/util/Iterator;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
Signature: ()Ljava/util/Iterator<Lio/netty/util/concurrent/EventExecutor;>;
public io.netty.channel.EventLoop next();
descriptor: ()Lio/netty/channel/EventLoop;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
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=6, locals=8, args_size=4
start local 0 start local 1 start local 3 start local 5 0: aload 0
iconst_1
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.shuttingDown:Z
1: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 4
StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long long java.util.concurrent.TimeUnit top java.util.Iterator
StackMap stack:
2: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 6
start local 6 3: aload 6
lload 1
lload 3
aload 5
invokeinterface io.netty.channel.EventLoop.shutdownGracefully:(JJLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/Future;
pop
end local 6 4: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 7
goto 8
StackMap locals:
StackMap stack:
6: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 6
start local 6 7: aload 6
lload 1
lload 3
aload 5
invokeinterface io.netty.channel.EventLoop.shutdownGracefully:(JJLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/Future;
pop
end local 6 8: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.isTerminated:()Z
ifeq 11
10: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.terminationFuture:Lio/netty/util/concurrent/Promise;
aconst_null
invokeinterface io.netty.util.concurrent.Promise.trySuccess:(Ljava/lang/Object;)Z
pop
11: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long long java.util.concurrent.TimeUnit
StackMap stack:
aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.terminationFuture:()Lio/netty/util/concurrent/Future;
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 12 1 quietPeriod J
0 12 3 timeout J
0 12 5 unit Ljava/util/concurrent/TimeUnit;
3 4 6 l Lio/netty/channel/EventLoop;
7 8 6 l Lio/netty/channel/EventLoop;
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.channel.ThreadPerChannelEventLoopGroup.terminationFuture:Lio/netty/util/concurrent/Promise;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
Signature: ()Lio/netty/util/concurrent/Future<*>;
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.netty.channel.ThreadPerChannelEventLoopGroup.shuttingDown:Z
1: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 3: aload 1
invokeinterface io.netty.channel.EventLoop.shutdown:()V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 2
goto 8
StackMap locals:
StackMap stack:
6: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 7: aload 1
invokeinterface io.netty.channel.EventLoop.shutdown:()V
end local 1 8: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.isTerminated:()Z
ifeq 11
10: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.terminationFuture:Lio/netty/util/concurrent/Promise;
aconst_null
invokeinterface io.netty.util.concurrent.Promise.trySuccess:(Ljava/lang/Object;)Z
pop
11: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
3 4 1 l Lio/netty/channel/EventLoop;
7 8 1 l Lio/netty/channel/EventLoop;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public boolean isShuttingDown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 2: aload 1
invokeinterface io.netty.channel.EventLoop.isShuttingDown:()Z
ifne 4
3: iconst_0
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals:
StackMap stack:
6: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 7: aload 1
invokeinterface io.netty.channel.EventLoop.isShuttingDown:()Z
ifne 9
8: iconst_0
ireturn
end local 1 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
2 4 1 l Lio/netty/channel/EventLoop;
7 9 1 l Lio/netty/channel/EventLoop;
public boolean isShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 2: aload 1
invokeinterface io.netty.channel.EventLoop.isShutdown:()Z
ifne 4
3: iconst_0
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals:
StackMap stack:
6: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 7: aload 1
invokeinterface io.netty.channel.EventLoop.isShutdown:()Z
ifne 9
8: iconst_0
ireturn
end local 1 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
2 4 1 l Lio/netty/channel/EventLoop;
7 9 1 l Lio/netty/channel/EventLoop;
public boolean isTerminated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 2: aload 1
invokeinterface io.netty.channel.EventLoop.isTerminated:()Z
ifne 4
3: iconst_0
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals:
StackMap stack:
6: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 7: aload 1
invokeinterface io.netty.channel.EventLoop.isTerminated:()Z
ifne 9
8: iconst_0
ireturn
end local 1 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
2 4 1 l Lio/netty/channel/EventLoop;
7 9 1 l Lio/netty/channel/EventLoop;
public boolean awaitTermination(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 3 0: invokestatic java.lang.System.nanoTime:()J
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
ladd
lstore 4
start local 4 1: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 7
StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long java.util.concurrent.TimeUnit long top java.util.Iterator
StackMap stack:
2: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 6
start local 6 3: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long java.util.concurrent.TimeUnit long io.netty.channel.EventLoop java.util.Iterator
StackMap stack:
lload 4
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 8
start local 8 4: lload 8
lconst_0
lcmp
ifgt 6
5: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.isTerminated:()Z
ireturn
6: StackMap locals: long
StackMap stack:
aload 6
lload 8
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface io.netty.channel.EventLoop.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
ifeq 3
end local 8 end local 6 7: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long java.util.concurrent.TimeUnit long top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 7
goto 14
StackMap locals:
StackMap stack:
9: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 6
start local 6 10: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long java.util.concurrent.TimeUnit long io.netty.channel.EventLoop java.util.Iterator
StackMap stack:
lload 4
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 8
start local 8 11: lload 8
lconst_0
lcmp
ifgt 13
12: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.isTerminated:()Z
ireturn
13: StackMap locals: long
StackMap stack:
aload 6
lload 8
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface io.netty.channel.EventLoop.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
ifeq 10
end local 8 end local 6 14: StackMap locals: io.netty.channel.ThreadPerChannelEventLoopGroup long java.util.concurrent.TimeUnit long top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
15: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.isTerminated:()Z
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 16 1 timeout J
0 16 3 unit Ljava/util/concurrent/TimeUnit;
1 16 4 deadline J
3 7 6 l Lio/netty/channel/EventLoop;
4 7 8 timeLeft J
10 14 6 l Lio/netty/channel/EventLoop;
11 14 8 timeLeft J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
timeout
unit
public io.netty.channel.ChannelFuture register(io.netty.channel.Channel);
descriptor: (Lio/netty/channel/Channel;)Lio/netty/channel/ChannelFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "channel"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.nextChild:()Lio/netty/channel/EventLoop;
astore 2
start local 2 3: aload 2
new io.netty.channel.DefaultChannelPromise
dup
aload 1
aload 2
invokespecial io.netty.channel.DefaultChannelPromise.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
invokeinterface io.netty.channel.EventLoop.register:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
4: areturn
end local 2 5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 6: new io.netty.channel.FailedChannelFuture
dup
aload 1
getstatic io.netty.util.concurrent.GlobalEventExecutor.INSTANCE:Lio/netty/util/concurrent/GlobalEventExecutor;
aload 2
invokespecial io.netty.channel.FailedChannelFuture.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Throwable;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 7 1 channel Lio/netty/channel/Channel;
3 5 2 l Lio/netty/channel/EventLoop;
6 7 2 t Ljava/lang/Throwable;
Exception table:
from to target type
2 4 5 Class java.lang.Throwable
MethodParameters:
Name Flags
channel
public io.netty.channel.ChannelFuture register(io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.nextChild:()Lio/netty/channel/EventLoop;
aload 1
invokeinterface io.netty.channel.EventLoop.register:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 3: aload 1
aload 2
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
4: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 5 1 promise Lio/netty/channel/ChannelPromise;
3 5 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
promise
public io.netty.channel.ChannelFuture register(io.netty.channel.Channel, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/Channel;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "channel"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.nextChild:()Lio/netty/channel/EventLoop;
aload 1
aload 2
invokeinterface io.netty.channel.EventLoop.register:(Lio/netty/channel/Channel;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
3: areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 5: aload 2
aload 3
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
6: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
0 7 1 channel Lio/netty/channel/Channel;
0 7 2 promise Lio/netty/channel/ChannelPromise;
5 7 3 t Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
channel
promise
private io.netty.channel.EventLoop nextChild();
descriptor: ()Lio/netty/channel/EventLoop;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.shuttingDown:Z
ifeq 2
1: new java.util.concurrent.RejectedExecutionException
dup
ldc "shutting down"
invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.idleChildren:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast io.netty.channel.EventLoop
astore 1
start local 1 3: aload 1
ifnonnull 8
4: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.maxChannels:I
ifle 6
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.maxChannels:I
if_icmplt 6
5: aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.tooManyChannels:Lio/netty/channel/ChannelException;
athrow
6: StackMap locals: io.netty.channel.EventLoop
StackMap stack:
aload 0
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.childArgs:[Ljava/lang/Object;
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.newChild:([Ljava/lang/Object;)Lio/netty/channel/EventLoop;
astore 1
7: aload 1
invokeinterface io.netty.channel.EventLoop.terminationFuture:()Lio/netty/util/concurrent/Future;
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.childTerminationListener:Lio/netty/util/concurrent/FutureListener;
invokeinterface io.netty.util.concurrent.Future.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Future;
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ThreadPerChannelEventLoopGroup.activeChildren:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
9: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/channel/ThreadPerChannelEventLoopGroup;
3 10 1 loop Lio/netty/channel/EventLoop;
Exceptions:
throws java.lang.Exception
public io.netty.util.concurrent.EventExecutor next();
descriptor: ()Lio/netty/util/concurrent/EventExecutor;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual io.netty.channel.ThreadPerChannelEventLoopGroup.next:()Lio/netty/channel/EventLoop;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ThreadPerChannelEventLoopGroup.java"
NestMembers:
io.netty.channel.ThreadPerChannelEventLoopGroup$1
InnerClasses:
io.netty.channel.ThreadPerChannelEventLoopGroup$1