final class org.xnio.nio.NioXnioWorker extends org.xnio.XnioWorker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.xnio.nio.NioXnioWorker
super_class: org.xnio.XnioWorker
{
private static final int CLOSE_REQ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
private static final int CLOSE_COMP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1073741824
private final long workerStackSize;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int state;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final org.xnio.nio.WorkerThread[] workerThreads;
descriptor: [Lorg/xnio/nio/WorkerThread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.nio.WorkerThread acceptThread;
descriptor: Lorg/xnio/nio/WorkerThread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.nio.NioXnioWorker$NioWorkerMetrics metrics;
descriptor: Lorg/xnio/nio/NioXnioWorker$NioWorkerMetrics;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.lang.Thread shutdownWaiter;
descriptor: Ljava/lang/Thread;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<org.xnio.nio.NioXnioWorker, java.lang.Thread> shutdownWaiterUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lorg/xnio/nio/NioXnioWorker;Ljava/lang/Thread;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioXnioWorker> stateUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioXnioWorker;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lorg/xnio/nio/NioXnioWorker;
ldc Ljava/lang/Thread;
ldc "shutdownWaiter"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
putstatic org.xnio.nio.NioXnioWorker.shutdownWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
1: ldc Lorg/xnio/nio/NioXnioWorker;
ldc "state"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioXnioWorker.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.xnio.XnioWorker$Builder);
descriptor: (Lorg/xnio/XnioWorker$Builder;)V
flags: (0x0000)
Code:
stack=10, locals=17, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.xnio.XnioWorker.<init>:(Lorg/xnio/XnioWorker$Builder;)V
1: aload 0
iconst_1
putfield org.xnio.nio.NioXnioWorker.state:I
2: aload 1
invokevirtual org.xnio.XnioWorker$Builder.getXnio:()Lorg/xnio/Xnio;
checkcast org.xnio.nio.NioXnio
astore 2
start local 2 3: aload 1
invokevirtual org.xnio.XnioWorker$Builder.getWorkerIoThreads:()I
istore 3
start local 3 4: aload 0
aload 1
invokevirtual org.xnio.XnioWorker$Builder.getWorkerStackSize:()J
putfield org.xnio.nio.NioXnioWorker.workerStackSize:J
5: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getName:()Ljava/lang/String;
astore 4
start local 4 6: iload 3
anewarray org.xnio.nio.WorkerThread
astore 5
start local 5 7: aload 1
invokevirtual org.xnio.XnioWorker$Builder.getThreadGroup:()Ljava/lang/ThreadGroup;
astore 6
start local 6 8: aload 1
invokevirtual org.xnio.XnioWorker$Builder.isDaemon:()Z
istore 7
start local 7 9: iconst_0
istore 8
start local 8 10: iconst_0
istore 9
start local 9 11: goto 21
12: StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int int
StackMap stack:
aload 2
getfield org.xnio.nio.NioXnio.mainSelectorCreator:Lorg/xnio/nio/NioXnio$SelectorCreator;
invokeinterface org.xnio.nio.NioXnio$SelectorCreator.open:()Ljava/nio/channels/Selector;
astore 10
start local 10 13: goto 16
end local 10 StackMap locals:
StackMap stack: java.io.IOException
14: astore 11
start local 11 15: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
aload 11
invokeinterface org.xnio.nio.Log.unexpectedSelectorOpenProblem:(Ljava/lang/Throwable;)Ljava/lang/IllegalStateException;
athrow
end local 11 start local 10 16: StackMap locals: java.nio.channels.Selector
StackMap stack:
new org.xnio.nio.WorkerThread
dup
aload 0
aload 10
ldc "%s I/O-%d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
iload 9
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 6
aload 0
getfield org.xnio.nio.NioXnioWorker.workerStackSize:J
iload 9
invokespecial org.xnio.nio.WorkerThread.<init>:(Lorg/xnio/nio/NioXnioWorker;Ljava/nio/channels/Selector;Ljava/lang/String;Ljava/lang/ThreadGroup;JI)V
astore 11
start local 11 17: iload 7
ifeq 19
18: aload 11
iconst_1
invokevirtual org.xnio.nio.WorkerThread.setDaemon:(Z)V
19: StackMap locals: org.xnio.nio.WorkerThread
StackMap stack:
aload 5
iload 9
aload 11
aastore
end local 11 end local 10 20: iinc 9 1
StackMap locals:
StackMap stack:
21: iload 9
iload 3
if_icmplt 12
end local 9 22: aload 2
getfield org.xnio.nio.NioXnio.mainSelectorCreator:Lorg/xnio/nio/NioXnio$SelectorCreator;
invokeinterface org.xnio.nio.NioXnio$SelectorCreator.open:()Ljava/nio/channels/Selector;
astore 9
start local 9 23: goto 26
end local 9 StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int
StackMap stack: java.io.IOException
24: astore 10
start local 10 25: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
aload 10
invokeinterface org.xnio.nio.Log.unexpectedSelectorOpenProblem:(Ljava/lang/Throwable;)Ljava/lang/IllegalStateException;
athrow
end local 10 start local 9 26: StackMap locals: java.nio.channels.Selector
StackMap stack:
aload 0
new org.xnio.nio.WorkerThread
dup
aload 0
aload 9
ldc "%s Accept"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 6
aload 0
getfield org.xnio.nio.NioXnioWorker.workerStackSize:J
iload 3
invokespecial org.xnio.nio.WorkerThread.<init>:(Lorg/xnio/nio/NioXnioWorker;Ljava/nio/channels/Selector;Ljava/lang/String;Ljava/lang/ThreadGroup;JI)V
putfield org.xnio.nio.NioXnioWorker.acceptThread:Lorg/xnio/nio/WorkerThread;
27: iload 7
ifeq 29
28: aload 0
getfield org.xnio.nio.NioXnioWorker.acceptThread:Lorg/xnio/nio/WorkerThread;
iconst_1
invokevirtual org.xnio.nio.WorkerThread.setDaemon:(Z)V
29: StackMap locals:
StackMap stack:
iconst_1
istore 8
end local 9 30: goto 39
StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int
StackMap stack: java.lang.Throwable
31: astore 12
32: iload 8
ifne 38
33: aload 5
dup
astore 16
arraylength
istore 15
iconst_0
istore 14
goto 37
StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int top top top java.lang.Throwable top int int org.xnio.nio.WorkerThread[]
StackMap stack:
34: aload 16
iload 14
aaload
astore 13
start local 13 35: aload 13
ifnull 36
aload 13
invokevirtual org.xnio.nio.WorkerThread.getSelector:()Ljava/nio/channels/Selector;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/nio/channels/Selector;)V
end local 13 36: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
37: iload 14
iload 15
if_icmplt 34
38: StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int top top top java.lang.Throwable
StackMap stack:
aload 12
athrow
39: StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int
StackMap stack:
iload 8
ifne 45
40: aload 5
dup
astore 16
arraylength
istore 15
iconst_0
istore 14
goto 44
StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int top top top top top int int org.xnio.nio.WorkerThread[]
StackMap stack:
41: aload 16
iload 14
aaload
astore 13
start local 13 42: aload 13
ifnull 43
aload 13
invokevirtual org.xnio.nio.WorkerThread.getSelector:()Ljava/nio/channels/Selector;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/nio/channels/Selector;)V
end local 13 43: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
44: iload 14
iload 15
if_icmplt 41
45: StackMap locals: org.xnio.nio.NioXnioWorker org.xnio.XnioWorker$Builder org.xnio.nio.NioXnio int java.lang.String org.xnio.nio.WorkerThread[] java.lang.ThreadGroup int int
StackMap stack:
aload 0
aload 5
putfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
46: aload 0
new org.xnio.nio.NioXnioWorker$NioWorkerMetrics
dup
aload 0
aload 4
invokespecial org.xnio.nio.NioXnioWorker$NioWorkerMetrics.<init>:(Lorg/xnio/nio/NioXnioWorker;Ljava/lang/String;)V
putfield org.xnio.nio.NioXnioWorker.metrics:Lorg/xnio/nio/NioXnioWorker$NioWorkerMetrics;
47: aload 0
getfield org.xnio.nio.NioXnioWorker.metrics:Lorg/xnio/nio/NioXnioWorker$NioWorkerMetrics;
invokevirtual org.xnio.nio.NioXnioWorker$NioWorkerMetrics.register:()V
48: return
end local 8 end local 7 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 49 0 this Lorg/xnio/nio/NioXnioWorker;
0 49 1 builder Lorg/xnio/XnioWorker$Builder;
3 49 2 xnio Lorg/xnio/nio/NioXnio;
4 49 3 threadCount I
6 49 4 workerName Ljava/lang/String;
7 49 5 workerThreads [Lorg/xnio/nio/WorkerThread;
8 49 6 threadGroup Ljava/lang/ThreadGroup;
9 49 7 markWorkerThreadAsDaemon Z
10 49 8 ok Z
11 22 9 i I
13 14 10 threadSelector Ljava/nio/channels/Selector;
16 20 10 threadSelector Ljava/nio/channels/Selector;
15 16 11 e Ljava/io/IOException;
17 20 11 workerThread Lorg/xnio/nio/WorkerThread;
23 24 9 threadSelector Ljava/nio/channels/Selector;
26 30 9 threadSelector Ljava/nio/channels/Selector;
25 26 10 e Ljava/io/IOException;
35 36 13 worker Lorg/xnio/nio/WorkerThread;
42 43 13 worker Lorg/xnio/nio/WorkerThread;
Exception table:
from to target type
12 13 14 Class java.io.IOException
22 23 24 Class java.io.IOException
10 31 31 any
MethodParameters:
Name Flags
builder final
void start();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: org.xnio.nio.NioXnioWorker top int int org.xnio.nio.WorkerThread[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.openResourceUnconditionally:()V
3: aload 1
invokevirtual org.xnio.nio.WorkerThread.start:()V
end local 1 4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 1
6: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.openResourceUnconditionally:()V
7: aload 0
getfield org.xnio.nio.NioXnioWorker.acceptThread:Lorg/xnio/nio/WorkerThread;
invokevirtual org.xnio.nio.WorkerThread.start:()V
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/xnio/nio/NioXnioWorker;
2 4 1 worker Lorg/xnio/nio/WorkerThread;
protected org.wildfly.common.net.CidrAddressTable<java.net.InetSocketAddress> getBindAddressTable();
descriptor: ()Lorg/wildfly/common/net/CidrAddressTable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.XnioWorker.getBindAddressTable:()Lorg/wildfly/common/net/CidrAddressTable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
Signature: ()Lorg/wildfly/common/net/CidrAddressTable<Ljava/net/InetSocketAddress;>;
protected org.xnio.nio.WorkerThread chooseThread();
descriptor: ()Lorg/xnio/nio/WorkerThread;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
invokevirtual java.util.concurrent.ThreadLocalRandom.nextInt:()I
invokevirtual org.xnio.nio.NioXnioWorker.getIoThread:(I)Lorg/xnio/nio/WorkerThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
public org.xnio.nio.WorkerThread getIoThread(int);
descriptor: (I)Lorg/xnio/nio/WorkerThread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
astore 2
start local 2 1: aload 2
arraylength
istore 3
start local 3 2: iload 3
ifne 4
3: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.noThreads:()Ljava/lang/IllegalArgumentException;
athrow
4: StackMap locals: org.xnio.nio.WorkerThread[] int
StackMap stack:
iload 3
iconst_1
if_icmpne 6
5: aload 2
iconst_0
aaload
areturn
6: StackMap locals:
StackMap stack:
aload 2
iload 1
iload 3
irem
invokestatic java.lang.Math.abs:(I)I
aaload
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/xnio/nio/NioXnioWorker;
0 7 1 hashCode I
1 7 2 workerThreads [Lorg/xnio/nio/WorkerThread;
2 7 3 length I
MethodParameters:
Name Flags
hashCode final
public int getIoThreadCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
org.xnio.nio.WorkerThread[] getAll();
descriptor: ()[Lorg/xnio/nio/WorkerThread;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
protected org.xnio.channels.AcceptingChannel<org.xnio.StreamConnection> createTcpConnectionServer(java.net.InetSocketAddress, org.xnio.ChannelListener<? super org.xnio.channels.AcceptingChannel<org.xnio.StreamConnection>>, org.xnio.OptionMap);
descriptor: (Ljava/net/InetSocketAddress;Lorg/xnio/ChannelListener;Lorg/xnio/OptionMap;)Lorg/xnio/channels/AcceptingChannel;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.checkShutdown:()V
1: iconst_0
istore 4
start local 4 2: invokestatic java.nio.channels.ServerSocketChannel.open:()Ljava/nio/channels/ServerSocketChannel;
astore 5
start local 5 3: aload 3
getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 4
aload 5
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
aload 3
getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.net.ServerSocket.setReceiveBufferSize:(I)V
4: StackMap locals: int java.nio.channels.ServerSocketChannel
StackMap stack:
aload 5
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
aload 3
getstatic org.xnio.Options.REUSE_ADDRESSES:Lorg/xnio/Option;
iconst_1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
invokevirtual java.net.ServerSocket.setReuseAddress:(Z)V
5: aload 5
iconst_0
invokevirtual java.nio.channels.ServerSocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
6: aload 3
getstatic org.xnio.Options.BACKLOG:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 9
7: aload 5
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
aload 1
aload 3
getstatic org.xnio.Options.BACKLOG:Lorg/xnio/Option;
sipush 128
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;I)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
aload 1
invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;)V
10: StackMap locals:
StackMap stack:
new org.xnio.nio.QueuedNioTcpServer
dup
aload 0
aload 5
aload 3
invokespecial org.xnio.nio.QueuedNioTcpServer.<init>:(Lorg/xnio/nio/NioXnioWorker;Ljava/nio/channels/ServerSocketChannel;Lorg/xnio/OptionMap;)V
astore 6
start local 6 11: aload 6
aload 2
invokevirtual org.xnio.nio.QueuedNioTcpServer.setAcceptListener:(Lorg/xnio/ChannelListener;)V
12: iconst_1
istore 4
13: aload 6
astore 8
14: iload 4
ifne 16
15: aload 5
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
16: StackMap locals: org.xnio.nio.NioXnioWorker java.net.InetSocketAddress org.xnio.ChannelListener org.xnio.OptionMap int java.nio.channels.ServerSocketChannel org.xnio.nio.QueuedNioTcpServer top org.xnio.channels.AcceptingChannel
StackMap stack:
aload 8
areturn
end local 6 17: StackMap locals: org.xnio.nio.NioXnioWorker java.net.InetSocketAddress org.xnio.ChannelListener org.xnio.OptionMap int java.nio.channels.ServerSocketChannel
StackMap stack: java.lang.Throwable
astore 7
18: iload 4
ifne 20
19: aload 5
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
20: StackMap locals: org.xnio.nio.NioXnioWorker java.net.InetSocketAddress org.xnio.ChannelListener org.xnio.OptionMap int java.nio.channels.ServerSocketChannel top java.lang.Throwable
StackMap stack:
aload 7
athrow
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 21 0 this Lorg/xnio/nio/NioXnioWorker;
0 21 1 bindAddress Ljava/net/InetSocketAddress;
0 21 2 acceptListener Lorg/xnio/ChannelListener<-Lorg/xnio/channels/AcceptingChannel<Lorg/xnio/StreamConnection;>;>;
0 21 3 optionMap Lorg/xnio/OptionMap;
2 21 4 ok Z
3 21 5 channel Ljava/nio/channels/ServerSocketChannel;
11 17 6 server Lorg/xnio/nio/QueuedNioTcpServer;
Exception table:
from to target type
3 14 17 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/net/InetSocketAddress;Lorg/xnio/ChannelListener<-Lorg/xnio/channels/AcceptingChannel<Lorg/xnio/StreamConnection;>;>;Lorg/xnio/OptionMap;)Lorg/xnio/channels/AcceptingChannel<Lorg/xnio/StreamConnection;>;
MethodParameters:
Name Flags
bindAddress final
acceptListener final
optionMap final
public org.xnio.channels.MulticastMessageChannel createUdpServer(java.net.InetSocketAddress, org.xnio.ChannelListener<? super org.xnio.channels.MulticastMessageChannel>, org.xnio.OptionMap);
descriptor: (Ljava/net/InetSocketAddress;Lorg/xnio/ChannelListener;Lorg/xnio/OptionMap;)Lorg/xnio/channels/MulticastMessageChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.checkShutdown:()V
1: aload 1
ifnull 8
2: aload 1
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 5
start local 5 3: aload 5
instanceof java.net.Inet6Address
ifeq 6
4: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
invokestatic java.nio.channels.DatagramChannel.open:(Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
astore 4
start local 4 5: goto 9
end local 4 6: StackMap locals: org.xnio.nio.NioXnioWorker java.net.InetSocketAddress org.xnio.ChannelListener org.xnio.OptionMap top java.net.InetAddress
StackMap stack:
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
invokestatic java.nio.channels.DatagramChannel.open:(Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
astore 4
end local 5 start local 4 7: goto 9
end local 4 8: StackMap locals: org.xnio.nio.NioXnioWorker java.net.InetSocketAddress org.xnio.ChannelListener org.xnio.OptionMap
StackMap stack:
invokestatic java.nio.channels.DatagramChannel.open:()Ljava/nio/channels/DatagramChannel;
astore 4
start local 4 9: StackMap locals: java.nio.channels.DatagramChannel
StackMap stack:
aload 4
iconst_0
invokevirtual java.nio.channels.DatagramChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
10: aload 3
getstatic org.xnio.Options.BROADCAST:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 11
aload 4
invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
aload 3
getstatic org.xnio.Options.BROADCAST:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
invokevirtual java.net.DatagramSocket.setBroadcast:(Z)V
11: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.IP_TRAFFIC_CLASS:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 12
aload 4
invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
aload 3
getstatic org.xnio.Options.IP_TRAFFIC_CLASS:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.net.DatagramSocket.setTrafficClass:(I)V
12: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 13
aload 4
invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
aload 3
getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.net.DatagramSocket.setReceiveBufferSize:(I)V
13: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
aload 3
getstatic org.xnio.Options.REUSE_ADDRESSES:Lorg/xnio/Option;
iconst_1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
invokevirtual java.net.DatagramSocket.setReuseAddress:(Z)V
14: aload 3
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 15
aload 4
invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
aload 3
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.net.DatagramSocket.setSendBufferSize:(I)V
15: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
aload 1
invokevirtual java.net.DatagramSocket.bind:(Ljava/net/SocketAddress;)V
16: new org.xnio.nio.NioUdpChannel
dup
aload 0
aload 4
invokespecial org.xnio.nio.NioUdpChannel.<init>:(Lorg/xnio/nio/NioXnioWorker;Ljava/nio/channels/DatagramChannel;)V
astore 5
start local 5 17: aload 5
aload 2
invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
pop
18: aload 5
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 19 0 this Lorg/xnio/nio/NioXnioWorker;
0 19 1 bindAddress Ljava/net/InetSocketAddress;
0 19 2 bindListener Lorg/xnio/ChannelListener<-Lorg/xnio/channels/MulticastMessageChannel;>;
0 19 3 optionMap Lorg/xnio/OptionMap;
5 6 4 channel Ljava/nio/channels/DatagramChannel;
7 8 4 channel Ljava/nio/channels/DatagramChannel;
9 19 4 channel Ljava/nio/channels/DatagramChannel;
3 7 5 address Ljava/net/InetAddress;
17 19 5 udpChannel Lorg/xnio/nio/NioUdpChannel;
Exceptions:
throws java.io.IOException
Signature: (Ljava/net/InetSocketAddress;Lorg/xnio/ChannelListener<-Lorg/xnio/channels/MulticastMessageChannel;>;Lorg/xnio/OptionMap;)Lorg/xnio/channels/MulticastMessageChannel;
MethodParameters:
Name Flags
bindAddress final
bindListener final
optionMap final
public boolean isShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
ldc -2147483648
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/nio/NioXnioWorker;
public boolean isTerminated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
ldc 1073741824
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/nio/NioXnioWorker;
void openResourceUnconditionally();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=1
start local 0 0: getstatic org.xnio.nio.NioXnioWorker.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndIncrement:(Ljava/lang/Object;)I
istore 1
start local 1 1: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.isTraceEnabled:()Z
ifeq 3
2: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "CAS %s %08x -> %08x"
aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 1
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.xnio.nio.Log.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
3: StackMap locals: int
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/xnio/nio/NioXnioWorker;
1 4 1 oldState I
void checkShutdown();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.isShutdown:()Z
ifeq 2
1: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.workerShutDown:()Lorg/xnio/ClosedWorkerException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/nio/NioXnioWorker;
Exceptions:
throws org.xnio.ClosedWorkerException
void closeResource();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 0: getstatic org.xnio.nio.NioXnioWorker.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.decrementAndGet:(Ljava/lang/Object;)I
istore 1
start local 1 1: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.isTraceEnabled:()Z
ifeq 14
2: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "CAS %s %08x -> %08x"
aload 0
iload 1
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.xnio.nio.Log.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
3: goto 14
4: StackMap locals: int
StackMap stack:
getstatic org.xnio.nio.NioXnioWorker.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
ldc -2147483648
ldc -1073741824
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 13
5: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "CAS %s %08x -> %08x (close complete)"
aload 0
ldc -2147483648
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc -1073741824
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.xnio.nio.Log.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
6: getstatic org.xnio.nio.NioXnioWorker.shutdownWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Thread
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
7: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getTerminationTask:()Ljava/lang/Runnable;
astore 2
start local 2 8: aload 2
ifnull 12
9: aload 2
invokeinterface java.lang.Runnable.run:()V
10: goto 12
StackMap locals: org.xnio.nio.NioXnioWorker int java.lang.Runnable
StackMap stack: java.lang.Throwable
11: pop
12: StackMap locals:
StackMap stack:
return
end local 2 13: StackMap locals:
StackMap stack:
aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
istore 1
14: StackMap locals:
StackMap stack:
iload 1
ldc -2147483648
if_icmpeq 4
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/xnio/nio/NioXnioWorker;
1 16 1 oldState I
8 13 2 task Ljava/lang/Runnable;
Exception table:
from to target type
9 10 11 Class java.lang.Throwable
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
istore 1
start local 1 1: goto 14
2: StackMap locals: int
StackMap stack:
getstatic org.xnio.nio.NioXnioWorker.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
ldc -2147483648
ior
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifne 5
3: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
istore 1
4: goto 14
5: StackMap locals:
StackMap stack:
getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "Initiating shutdown of %s"
aload 0
invokeinterface org.xnio.nio.Log.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
6: aload 0
getfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 10
StackMap locals: org.xnio.nio.NioXnioWorker int top int int org.xnio.nio.WorkerThread[]
StackMap stack:
7: aload 5
iload 3
aaload
astore 2
start local 2 8: aload 2
invokevirtual org.xnio.nio.WorkerThread.shutdown:()V
end local 2 9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 4
if_icmplt 7
11: aload 0
getfield org.xnio.nio.NioXnioWorker.acceptThread:Lorg/xnio/nio/WorkerThread;
invokevirtual org.xnio.nio.WorkerThread.shutdown:()V
12: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.shutDownTaskPool:()V
13: return
14: StackMap locals: org.xnio.nio.NioXnioWorker int
StackMap stack:
iload 1
ldc -2147483648
iand
ifeq 2
15: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "Idempotent shutdown of %s"
aload 0
invokeinterface org.xnio.nio.Log.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/xnio/nio/NioXnioWorker;
1 17 1 oldState I
8 9 2 worker Lorg/xnio/nio/WorkerThread;
public java.util.List<java.lang.Runnable> shutdownNow();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.shutdown:()V
1: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.shutDownTaskPoolNow:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/nio/NioXnioWorker;
Signature: ()Ljava/util/List<Ljava/lang/Runnable;>;
public boolean awaitTermination(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
istore 4
start local 4 1: iload 4
ldc 1073741824
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: int
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 4: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 7
start local 7 5: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 9
start local 9 6: goto 24
7: StackMap locals: long long java.lang.Thread
StackMap stack:
getstatic org.xnio.nio.NioXnioWorker.shutdownWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aload 9
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Thread
astore 10
start local 10 8: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
dup
istore 4
ldc 1073741824
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 11
9: aload 10
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
10: goto 25
11: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
lload 7
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
12: invokestatic java.lang.Thread.interrupted:()Z
ifeq 14
13: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 11
start local 11 15: lload 7
lload 11
lload 5
lsub
lsub
lstore 7
16: lload 7
lconst_0
lcmp
ifge 23
17: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
istore 4
18: aload 10
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
19: goto 25
end local 11 20: StackMap locals:
StackMap stack: java.lang.Throwable
astore 13
21: aload 10
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
22: aload 13
athrow
23: StackMap locals:
StackMap stack:
aload 10
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
end local 10 24: StackMap locals:
StackMap stack:
aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
dup
istore 4
ldc 1073741824
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifne 7
25: StackMap locals:
StackMap stack:
iload 4
ldc 1073741824
invokestatic org.xnio.Bits.allAreSet:(II)Z
ireturn
end local 9 end local 7 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/xnio/nio/NioXnioWorker;
0 26 1 timeout J
0 26 3 unit Ljava/util/concurrent/TimeUnit;
1 26 4 oldState I
4 26 5 then J
5 26 7 duration J
6 26 9 myThread Ljava/lang/Thread;
8 24 10 oldThread Ljava/lang/Thread;
15 20 11 now J
Exception table:
from to target type
8 9 20 any
11 18 20 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
timeout final
unit final
public void awaitTermination();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
istore 1
start local 1 1: iload 1
ldc 1073741824
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 3
2: return
3: StackMap locals: int
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 2
start local 2 4: goto 16
5: StackMap locals: java.lang.Thread
StackMap stack:
getstatic org.xnio.nio.NioXnioWorker.shutdownWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Thread
astore 3
start local 3 6: aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
ldc 1073741824
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 9
7: aload 3
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
8: goto 17
9: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
10: invokestatic java.lang.Thread.interrupted:()Z
ifeq 15
11: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
13: aload 3
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
14: aload 4
athrow
15: StackMap locals:
StackMap stack:
aload 3
invokestatic org.xnio.nio.NioXnioWorker.safeUnpark:(Ljava/lang/Thread;)V
end local 3 16: StackMap locals:
StackMap stack:
aload 0
getfield org.xnio.nio.NioXnioWorker.state:I
ldc 1073741824
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifne 5
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/xnio/nio/NioXnioWorker;
1 18 1 oldState I
4 18 2 myThread Ljava/lang/Thread;
6 16 3 oldThread Ljava/lang/Thread;
Exception table:
from to target type
6 7 12 any
9 12 12 any
Exceptions:
throws java.lang.InterruptedException
private static void safeUnpark(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
1: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 waiter Ljava/lang/Thread;
MethodParameters:
Name Flags
waiter final
protected void taskPoolTerminated();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.metrics:Lorg/xnio/nio/NioXnioWorker$NioWorkerMetrics;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
1: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.closeResource:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/nio/NioXnioWorker;
public <T> T getOption(org.xnio.Option<T>);
descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.xnio.Options.WORKER_IO_THREADS:Lorg/xnio/Option;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 1
aload 0
getfield org.xnio.nio.NioXnioWorker.workerThreads:[Lorg/xnio/nio/WorkerThread;
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.STACK_SIZE:Lorg/xnio/Option;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 1
aload 0
getfield org.xnio.nio.NioXnioWorker.workerStackSize:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial org.xnio.XnioWorker.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/xnio/nio/NioXnioWorker;
0 5 1 option Lorg/xnio/Option<TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
MethodParameters:
Name Flags
option
public org.xnio.nio.NioXnio getXnio();
descriptor: ()Lorg/xnio/nio/NioXnio;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.XnioWorker.getXnio:()Lorg/xnio/Xnio;
checkcast org.xnio.nio.NioXnio
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
org.xnio.nio.WorkerThread getAcceptThread();
descriptor: ()Lorg/xnio/nio/WorkerThread;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.acceptThread:Lorg/xnio/nio/WorkerThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
public org.xnio.management.XnioWorkerMXBean getMXBean();
descriptor: ()Lorg/xnio/management/XnioWorkerMXBean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioXnioWorker.metrics:Lorg/xnio/nio/NioXnioWorker$NioWorkerMetrics;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
protected org.xnio.ManagementRegistration registerServerMXBean(org.xnio.management.XnioServerMXBean);
descriptor: (Lorg/xnio/management/XnioServerMXBean;)Lorg/xnio/ManagementRegistration;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.nio.NioXnioWorker.metrics:Lorg/xnio/nio/NioXnioWorker$NioWorkerMetrics;
aload 1
invokevirtual org.xnio.nio.NioXnioWorker$NioWorkerMetrics.registerServerMXBean:(Lorg/xnio/management/XnioServerMXBean;)Lorg/xnio/ManagementRegistration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioXnioWorker;
0 1 1 serverMXBean Lorg/xnio/management/XnioServerMXBean;
MethodParameters:
Name Flags
serverMXBean
protected org.xnio.XnioIoThread chooseThread();
descriptor: ()Lorg/xnio/XnioIoThread;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.chooseThread:()Lorg/xnio/nio/WorkerThread;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.xnio.XnioIoThread getIoThread(int);
descriptor: (I)Lorg/xnio/XnioIoThread;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual org.xnio.nio.NioXnioWorker.getIoThread:(I)Lorg/xnio/nio/WorkerThread;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.xnio.Xnio getXnio();
descriptor: ()Lorg/xnio/Xnio;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getXnio:()Lorg/xnio/nio/NioXnio;
areturn
LocalVariableTable:
Start End Slot Name Signature
static int access$3(org.xnio.nio.NioXnioWorker);
descriptor: (Lorg/xnio/nio/NioXnioWorker;)I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getCoreWorkerPoolSize:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static int access$4(org.xnio.nio.NioXnioWorker);
descriptor: (Lorg/xnio/nio/NioXnioWorker;)I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getMaxWorkerPoolSize:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static int access$5(org.xnio.nio.NioXnioWorker);
descriptor: (Lorg/xnio/nio/NioXnioWorker;)I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getBusyWorkerThreadCount:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static int access$6(org.xnio.nio.NioXnioWorker);
descriptor: (Lorg/xnio/nio/NioXnioWorker;)I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioXnioWorker.getWorkerQueueSize:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "NioXnioWorker.java"
NestMembers:
org.xnio.nio.NioXnioWorker$NioWorkerMetrics
InnerClasses:
public Builder = org.xnio.XnioWorker$Builder of org.xnio.XnioWorker
abstract SelectorCreator = org.xnio.nio.NioXnio$SelectorCreator of org.xnio.nio.NioXnio
private NioWorkerMetrics = org.xnio.nio.NioXnioWorker$NioWorkerMetrics of org.xnio.nio.NioXnioWorker