final class org.xnio.nio.NioTcpServer extends org.xnio.nio.AbstractNioChannel<org.xnio.nio.NioTcpServer> implements org.xnio.channels.AcceptingChannel<org.xnio.StreamConnection>, org.xnio.channels.AcceptListenerSettable<org.xnio.nio.NioTcpServer>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.xnio.nio.NioTcpServer
super_class: org.xnio.nio.AbstractNioChannel
{
private static final java.lang.String FQCN;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile org.xnio.ChannelListener<? super org.xnio.nio.NioTcpServer> acceptListener;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Lorg/xnio/ChannelListener<-Lorg/xnio/nio/NioTcpServer;>;
private final org.xnio.nio.NioTcpServerHandle[] handles;
descriptor: [Lorg/xnio/nio/NioTcpServerHandle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.channels.ServerSocketChannel channel;
descriptor: Ljava/nio/channels/ServerSocketChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.net.ServerSocket socket;
descriptor: Ljava/net/ServerSocket;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.ManagementRegistration mbeanHandle;
descriptor: Lorg/xnio/ManagementRegistration;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.util.Set<org.xnio.Option<?>> options;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lorg/xnio/Option<*>;>;
private volatile int keepAlive;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int oobInline;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int tcpNoDelay;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int sendBuffer;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long connectionStatus;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int readTimeout;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int writeTimeout;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int tokenConnectionCount;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
volatile boolean resumed;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
private static final long CONN_LOW_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private static final long CONN_LOW_BIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final long CONN_LOW_ONE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final long CONN_HIGH_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4611686016279904256
private static final long CONN_HIGH_BIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 31
private static final long CONN_HIGH_ONE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483648
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioTcpServer> keepAliveUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioTcpServer> oobInlineUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioTcpServer> tcpNoDelayUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioTcpServer> sendBufferUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioTcpServer> readTimeoutUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.NioTcpServer> writeTimeoutUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.xnio.nio.NioTcpServer> connectionStatusUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/xnio/nio/NioTcpServer;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/xnio/nio/NioTcpServer;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.xnio.nio.NioTcpServer.$assertionsDisabled:Z
3: ldc Lorg/xnio/nio/NioTcpServer;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
putstatic org.xnio.nio.NioTcpServer.FQCN:Ljava/lang/String;
4: invokestatic org.xnio.Option.setBuilder:()Lorg/xnio/Option$SetBuilder;
5: getstatic org.xnio.Options.REUSE_ADDRESSES:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
6: getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
7: getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
8: getstatic org.xnio.Options.KEEP_ALIVE:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
9: getstatic org.xnio.Options.TCP_OOB_INLINE:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
10: getstatic org.xnio.Options.TCP_NODELAY:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
11: getstatic org.xnio.Options.CONNECTION_HIGH_WATER:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
12: getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
13: getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
14: getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
15: invokevirtual org.xnio.Option$SetBuilder.create:()Ljava/util/Set;
16: putstatic org.xnio.nio.NioTcpServer.options:Ljava/util/Set;
17: ldc Lorg/xnio/nio/NioTcpServer;
ldc "keepAlive"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.keepAliveUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
18: ldc Lorg/xnio/nio/NioTcpServer;
ldc "oobInline"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.oobInlineUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
19: ldc Lorg/xnio/nio/NioTcpServer;
ldc "tcpNoDelay"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.tcpNoDelayUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
20: ldc Lorg/xnio/nio/NioTcpServer;
ldc "sendBuffer"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.sendBufferUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
21: ldc Lorg/xnio/nio/NioTcpServer;
ldc "readTimeout"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.readTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
22: ldc Lorg/xnio/nio/NioTcpServer;
ldc "writeTimeout"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.writeTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
23: ldc Lorg/xnio/nio/NioTcpServer;
ldc "connectionStatus"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
putstatic org.xnio.nio.NioTcpServer.connectionStatusUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.xnio.nio.NioXnioWorker, java.nio.channels.ServerSocketChannel, org.xnio.OptionMap);
descriptor: (Lorg/xnio/nio/NioXnioWorker;Ljava/nio/channels/ServerSocketChannel;Lorg/xnio/OptionMap;)V
flags: (0x0000)
Code:
stack=10, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial org.xnio.nio.AbstractNioChannel.<init>:(Lorg/xnio/nio/NioXnioWorker;)V
1: aload 0
iconst_m1
putfield org.xnio.nio.NioTcpServer.sendBuffer:I
2: aload 0
ldc 4611686018427387903
putfield org.xnio.nio.NioTcpServer.connectionStatus:J
3: aload 0
aload 2
putfield org.xnio.nio.NioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
4: aload 1
invokevirtual org.xnio.nio.NioXnioWorker.getAll:()[Lorg/xnio/nio/WorkerThread;
astore 4
start local 4 5: aload 4
arraylength
istore 5
start local 5 6: iload 5
ifne 8
7: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.noThreads:()Ljava/lang/IllegalArgumentException;
athrow
8: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int
StackMap stack:
aload 3
getstatic org.xnio.Options.BALANCING_TOKENS:Lorg/xnio/Option;
iconst_m1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 6
start local 6 9: aload 3
getstatic org.xnio.Options.BALANCING_CONNECTIONS:Lorg/xnio/Option;
bipush 16
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 7
start local 7 10: iload 6
iconst_m1
if_icmpeq 16
11: iload 6
iconst_1
if_icmplt 12
iload 6
iload 5
if_icmplt 13
12: StackMap locals: int int
StackMap stack:
getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.balancingTokens:()Ljava/lang/IllegalArgumentException;
athrow
13: StackMap locals:
StackMap stack:
iload 7
iconst_1
if_icmpge 15
14: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
invokeinterface org.xnio.nio.Log.balancingConnectionCount:()Ljava/lang/IllegalArgumentException;
athrow
15: StackMap locals:
StackMap stack:
aload 0
iload 7
putfield org.xnio.nio.NioTcpServer.tokenConnectionCount:I
16: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
putfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
17: aload 3
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 22
18: aload 3
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
ldc 65536
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 8
start local 8 19: iload 8
iconst_1
if_icmpge 21
20: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "sendBufferSize"
invokeinterface org.xnio.nio.Log.parameterOutOfRange:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
21: StackMap locals: int
StackMap stack:
getstatic org.xnio.nio.NioTcpServer.sendBufferUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 8
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
end local 8 22: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.KEEP_ALIVE:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 26
23: getstatic org.xnio.nio.NioTcpServer.keepAliveUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
aload 3
getstatic org.xnio.Options.KEEP_ALIVE:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
ifeq 24
iconst_1
goto 25
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer
24: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer int
25: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
26: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.TCP_OOB_INLINE:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 30
27: getstatic org.xnio.nio.NioTcpServer.oobInlineUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
aload 3
getstatic org.xnio.Options.TCP_OOB_INLINE:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
ifeq 28
iconst_1
goto 29
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer
28: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer int
29: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
30: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.TCP_NODELAY:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 34
31: getstatic org.xnio.nio.NioTcpServer.tcpNoDelayUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
aload 3
getstatic org.xnio.Options.TCP_NODELAY:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
ifeq 32
iconst_1
goto 33
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer
32: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer int
33: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
34: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 36
35: getstatic org.xnio.nio.NioTcpServer.readTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
aload 3
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
36: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 38
37: getstatic org.xnio.nio.NioTcpServer.writeTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
aload 3
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
38: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.CONNECTION_HIGH_WATER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifne 39
aload 3
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 52
39: StackMap locals:
StackMap stack:
aload 3
getstatic org.xnio.Options.CONNECTION_HIGH_WATER:Lorg/xnio/Option;
ldc 2147483647
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 12
start local 12 40: aload 3
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
iload 12
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 13
start local 13 41: iload 12
ifgt 43
42: invokestatic org.xnio.nio.NioTcpServer.badHighWater:()Ljava/lang/IllegalArgumentException;
athrow
43: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int top top top top int int
StackMap stack:
iload 13
ifle 44
iload 13
iload 12
if_icmple 45
44: StackMap locals:
StackMap stack:
iload 12
invokestatic org.xnio.nio.NioTcpServer.badLowWater:(I)Ljava/lang/IllegalArgumentException;
athrow
45: StackMap locals:
StackMap stack:
iload 12
i2l
bipush 31
lshl
iload 13
i2l
iconst_0
lshl
lor
lstore 14
start local 14 46: getstatic org.xnio.nio.NioTcpServer.connectionStatusUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 14
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.lazySet:(Ljava/lang/Object;J)V
47: iload 13
iload 5
idiv
istore 8
start local 8 48: iload 13
iload 5
irem
istore 9
start local 9 49: iload 12
iload 5
idiv
istore 10
start local 10 50: iload 12
iload 5
irem
istore 11
end local 14 end local 13 end local 12 start local 11 51: goto 57
end local 11 end local 10 end local 9 end local 8 52: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int
StackMap stack:
ldc 2147483647
istore 8
start local 8 53: iconst_0
istore 9
start local 9 54: ldc 2147483647
istore 10
start local 10 55: iconst_0
istore 11
start local 11 56: getstatic org.xnio.nio.NioTcpServer.connectionStatusUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
ldc 4611686018427387903
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.lazySet:(Ljava/lang/Object;J)V
57: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int int int int int
StackMap stack:
iload 5
anewarray org.xnio.nio.NioTcpServerHandle
astore 12
start local 12 58: iconst_0
istore 13
start local 13 59: iload 5
istore 14
start local 14 60: goto 70
61: StackMap locals: org.xnio.nio.NioTcpServerHandle[] int int
StackMap stack:
aload 4
iload 13
aaload
aload 2
invokevirtual org.xnio.nio.WorkerThread.registerChannel:(Ljava/nio/channels/spi/AbstractSelectableChannel;)Ljava/nio/channels/SelectionKey;
astore 15
start local 15 62: aload 12
iload 13
63: new org.xnio.nio.NioTcpServerHandle
dup
aload 0
aload 15
aload 4
iload 13
aaload
iload 13
iload 11
if_icmpge 64
iload 10
iconst_1
iadd
goto 65
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int int int int int org.xnio.nio.NioTcpServerHandle[] int int java.nio.channels.SelectionKey
StackMap stack: org.xnio.nio.NioTcpServerHandle[] int new 63 new 63 org.xnio.nio.NioTcpServer java.nio.channels.SelectionKey org.xnio.nio.WorkerThread
64: iload 10
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int int int int int org.xnio.nio.NioTcpServerHandle[] int int java.nio.channels.SelectionKey
StackMap stack: org.xnio.nio.NioTcpServerHandle[] int new 63 new 63 org.xnio.nio.NioTcpServer java.nio.channels.SelectionKey org.xnio.nio.WorkerThread int
65: iload 13
iload 9
if_icmpge 66
iload 8
iconst_1
iadd
goto 67
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int int int int int org.xnio.nio.NioTcpServerHandle[] int int java.nio.channels.SelectionKey
StackMap stack: org.xnio.nio.NioTcpServerHandle[] int new 63 new 63 org.xnio.nio.NioTcpServer java.nio.channels.SelectionKey org.xnio.nio.WorkerThread int
66: iload 8
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int int int int int org.xnio.nio.NioTcpServerHandle[] int int java.nio.channels.SelectionKey
StackMap stack: org.xnio.nio.NioTcpServerHandle[] int new 63 new 63 org.xnio.nio.NioTcpServer java.nio.channels.SelectionKey org.xnio.nio.WorkerThread int int
67: invokespecial org.xnio.nio.NioTcpServerHandle.<init>:(Lorg/xnio/nio/NioTcpServer;Ljava/nio/channels/SelectionKey;Lorg/xnio/nio/WorkerThread;II)V
aastore
68: aload 15
aload 12
iload 13
aaload
invokevirtual java.nio.channels.SelectionKey.attach:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 15 69: iinc 13 1
StackMap locals:
StackMap stack:
70: iload 13
iload 14
if_icmplt 61
end local 14 end local 13 71: aload 0
aload 12
putfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
72: iload 6
ifle 80
73: iconst_0
istore 13
start local 13 74: goto 79
75: StackMap locals:
StackMap stack:
aload 12
iload 13
aaload
iload 13
iload 6
if_icmpge 76
iload 7
goto 77
StackMap locals:
StackMap stack: org.xnio.nio.NioTcpServerHandle
76: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] int int int int int int int org.xnio.nio.NioTcpServerHandle[] int
StackMap stack: org.xnio.nio.NioTcpServerHandle int
77: invokevirtual org.xnio.nio.NioTcpServerHandle.initializeTokenCount:(I)V
78: iinc 13 1
StackMap locals:
StackMap stack:
79: iload 13
iload 5
if_icmplt 75
end local 13 80: StackMap locals:
StackMap stack:
aload 0
aload 1
81: new org.xnio.nio.NioTcpServer$1
dup
aload 0
aload 1
aload 12
invokespecial org.xnio.nio.NioTcpServer$1.<init>:(Lorg/xnio/nio/NioTcpServer;Lorg/xnio/nio/NioXnioWorker;[Lorg/xnio/nio/NioTcpServerHandle;)V
82: invokevirtual org.xnio.nio.NioXnioWorker.registerServerMXBean:(Lorg/xnio/management/XnioServerMXBean;)Lorg/xnio/ManagementRegistration;
putfield org.xnio.nio.NioTcpServer.mbeanHandle:Lorg/xnio/ManagementRegistration;
83: return
end local 12 end local 11 end local 10 end local 9 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 84 0 this Lorg/xnio/nio/NioTcpServer;
0 84 1 worker Lorg/xnio/nio/NioXnioWorker;
0 84 2 channel Ljava/nio/channels/ServerSocketChannel;
0 84 3 optionMap Lorg/xnio/OptionMap;
5 84 4 threads [Lorg/xnio/nio/WorkerThread;
6 84 5 threadCount I
9 84 6 tokens I
10 84 7 connections I
19 22 8 sendBufferSize I
48 52 8 perThreadLow I
53 84 8 perThreadLow I
49 52 9 perThreadLowRem I
54 84 9 perThreadLowRem I
50 52 10 perThreadHigh I
55 84 10 perThreadHigh I
51 52 11 perThreadHighRem I
56 84 11 perThreadHighRem I
40 51 12 highWater I
41 51 13 lowWater I
46 51 14 highLowWater J
58 84 12 handles [Lorg/xnio/nio/NioTcpServerHandle;
59 71 13 i I
60 71 14 length I
62 69 15 key Ljava/nio/channels/SelectionKey;
74 80 13 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
worker final
channel final
optionMap final
private static java.lang.IllegalArgumentException badLowWater(int);
descriptor: (I)Ljava/lang/IllegalArgumentException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Low water must be greater than 0 and less than or equal to high water ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
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
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 highWater I
MethodParameters:
Name Flags
highWater final
private static java.lang.IllegalArgumentException badHighWater();
descriptor: ()Ljava/lang/IllegalArgumentException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.IllegalArgumentException
dup
ldc "High water must be greater than 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.close:()V
1: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.xnio.nio.NioTcpServer java.lang.Throwable top int int org.xnio.nio.NioTcpServerHandle[]
StackMap stack:
4: aload 5
iload 3
aaload
astore 2
start local 2 5: aload 2
iconst_0
invokevirtual org.xnio.nio.NioTcpServerHandle.cancelKey:(Z)V
end local 2 6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 4
8: aload 0
getfield org.xnio.nio.NioTcpServer.mbeanHandle:Lorg/xnio/ManagementRegistration;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/lang/AutoCloseable;)V
9: aload 1
athrow
10: StackMap locals: org.xnio.nio.NioTcpServer
StackMap stack:
aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 14
StackMap locals: org.xnio.nio.NioTcpServer top top int int org.xnio.nio.NioTcpServerHandle[]
StackMap stack:
11: aload 5
iload 3
aaload
astore 2
start local 2 12: aload 2
iconst_0
invokevirtual org.xnio.nio.NioTcpServerHandle.cancelKey:(Z)V
end local 2 13: iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
iload 4
if_icmplt 11
15: aload 0
getfield org.xnio.nio.NioTcpServer.mbeanHandle:Lorg/xnio/ManagementRegistration;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/lang/AutoCloseable;)V
16: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/xnio/nio/NioTcpServer;
5 6 2 handle Lorg/xnio/nio/NioTcpServerHandle;
12 13 2 handle Lorg/xnio/nio/NioTcpServerHandle;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.io.IOException
public boolean supportsOption(org.xnio.Option<?>);
descriptor: (Lorg/xnio/Option;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.xnio.nio.NioTcpServer.options:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
0 1 1 option Lorg/xnio/Option<*>;
Signature: (Lorg/xnio/Option<*>;)Z
MethodParameters:
Name Flags
option final
public <T> T getOption(org.xnio.Option<T>);
descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.xnio.Options.REUSE_ADDRESSES:Lorg/xnio/Option;
if_acmpne 2
1: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.getReuseAddress:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
if_acmpne 4
3: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.getReceiveBufferSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
if_acmpne 9
5: aload 0
getfield org.xnio.nio.NioTcpServer.sendBuffer:I
istore 2
start local 2 6: iload 2
iconst_m1
if_icmpne 7
aconst_null
goto 8
StackMap locals: int
StackMap stack:
7: aload 1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
8: areturn
end local 2 9: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.KEEP_ALIVE:Lorg/xnio/Option;
if_acmpne 13
10: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.keepAlive:I
ifeq 11
iconst_1
goto 12
StackMap locals:
StackMap stack: org.xnio.Option
11: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option
StackMap stack: org.xnio.Option int
12: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
13: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.TCP_OOB_INLINE:Lorg/xnio/Option;
if_acmpne 17
14: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.oobInline:I
ifeq 15
iconst_1
goto 16
StackMap locals:
StackMap stack: org.xnio.Option
15: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option
StackMap stack: org.xnio.Option int
16: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
17: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.TCP_NODELAY:Lorg/xnio/Option;
if_acmpne 21
18: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.tcpNoDelay:I
ifeq 19
iconst_1
goto 20
StackMap locals:
StackMap stack: org.xnio.Option
19: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option
StackMap stack: org.xnio.Option int
20: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
21: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
if_acmpne 23
22: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.readTimeout:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
23: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
if_acmpne 25
24: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.writeTimeout:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
25: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.CONNECTION_HIGH_WATER:Lorg/xnio/Option;
if_acmpne 27
26: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.NioTcpServer.getHighWater:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
27: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
if_acmpne 29
28: aload 1
aload 0
getfield org.xnio.nio.NioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.NioTcpServer.getLowWater:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
29: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/xnio/nio/NioTcpServer;
0 30 1 option Lorg/xnio/Option<TT;>;
6 9 2 value I
Exceptions:
throws org.xnio.channels.UnsupportedOptionException, java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
MethodParameters:
Name Flags
option final
public <T> T setOption(org.xnio.Option<T>, );
descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.xnio.Options.REUSE_ADDRESSES:Lorg/xnio/Option;
if_acmpne 4
1: aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.getReuseAddress:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 3
start local 3 2: aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
getstatic org.xnio.Options.REUSE_ADDRESSES:Lorg/xnio/Option;
aload 2
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
invokevirtual java.net.ServerSocket.setReuseAddress:(Z)V
3: goto 54
end local 3 StackMap locals:
StackMap stack:
4: aload 1
getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
if_acmpne 11
5: aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.getReceiveBufferSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 3
start local 3 6: getstatic org.xnio.Options.RECEIVE_BUFFER:Lorg/xnio/Option;
aload 2
ldc 65536
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 7: iload 4
iconst_1
if_icmpge 9
8: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "RECEIVE_BUFFER"
invokeinterface org.xnio.nio.Log.optionOutOfRange:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
9: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
iload 4
invokevirtual java.net.ServerSocket.setReceiveBufferSize:(I)V
end local 4 10: goto 54
end local 3 StackMap locals:
StackMap stack:
11: aload 1
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
if_acmpne 20
12: getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
aload 2
ldc 65536
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 13: iload 4
iconst_1
if_icmpge 15
14: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "SEND_BUFFER"
invokeinterface org.xnio.nio.Log.optionOutOfRange:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
15: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object top int
StackMap stack:
getstatic org.xnio.nio.NioTcpServer.sendBufferUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 4
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
istore 5
start local 5 16: iload 5
iconst_m1
if_icmpne 17
aconst_null
goto 18
StackMap locals: int
StackMap stack:
17: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
StackMap locals:
StackMap stack: java.lang.Integer
18: astore 3
end local 5 end local 4 start local 3 19: goto 54
end local 3 StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack:
20: aload 1
getstatic org.xnio.Options.KEEP_ALIVE:Lorg/xnio/Option;
if_acmpne 27
21: getstatic org.xnio.nio.NioTcpServer.keepAliveUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
getstatic org.xnio.Options.KEEP_ALIVE:Lorg/xnio/Option;
aload 2
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 22
iconst_1
goto 23
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer
22: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer int
23: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
ifeq 24
iconst_1
goto 25
StackMap locals:
StackMap stack:
24: iconst_0
StackMap locals:
StackMap stack: int
25: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 3
start local 3 26: goto 54
end local 3 StackMap locals:
StackMap stack:
27: aload 1
getstatic org.xnio.Options.TCP_OOB_INLINE:Lorg/xnio/Option;
if_acmpne 34
28: getstatic org.xnio.nio.NioTcpServer.oobInlineUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
getstatic org.xnio.Options.TCP_OOB_INLINE:Lorg/xnio/Option;
aload 2
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 29
iconst_1
goto 30
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer
29: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer int
30: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
ifeq 31
iconst_1
goto 32
StackMap locals:
StackMap stack:
31: iconst_0
StackMap locals:
StackMap stack: int
32: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 3
start local 3 33: goto 54
end local 3 StackMap locals:
StackMap stack:
34: aload 1
getstatic org.xnio.Options.TCP_NODELAY:Lorg/xnio/Option;
if_acmpne 41
35: getstatic org.xnio.nio.NioTcpServer.tcpNoDelayUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
getstatic org.xnio.Options.TCP_NODELAY:Lorg/xnio/Option;
aload 2
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 36
iconst_1
goto 37
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer
36: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.NioTcpServer int
37: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
ifeq 38
iconst_1
goto 39
StackMap locals:
StackMap stack:
38: iconst_0
StackMap locals:
StackMap stack: int
39: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 3
start local 3 40: goto 54
end local 3 StackMap locals:
StackMap stack:
41: aload 1
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
if_acmpne 44
42: getstatic org.xnio.nio.NioTcpServer.readTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
aload 2
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 3
start local 3 43: goto 54
end local 3 StackMap locals:
StackMap stack:
44: aload 1
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
if_acmpne 47
45: getstatic org.xnio.nio.NioTcpServer.writeTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
aload 2
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 3
start local 3 46: goto 54
end local 3 StackMap locals:
StackMap stack:
47: aload 1
getstatic org.xnio.Options.CONNECTION_HIGH_WATER:Lorg/xnio/Option;
if_acmpne 50
48: aload 0
iconst_m1
getstatic org.xnio.Options.CONNECTION_HIGH_WATER:Lorg/xnio/Option;
aload 2
ldc 2147483647
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.xnio.nio.NioTcpServer.updateWaterMark:(II)J
invokestatic org.xnio.nio.NioTcpServer.getHighWater:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 3
start local 3 49: goto 54
end local 3 StackMap locals:
StackMap stack:
50: aload 1
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
if_acmpne 53
51: aload 0
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
aload 2
ldc 2147483647
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iconst_m1
invokevirtual org.xnio.nio.NioTcpServer.updateWaterMark:(II)J
invokestatic org.xnio.nio.NioTcpServer.getLowWater:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 3
start local 3 52: goto 54
end local 3 53: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 3 54: StackMap locals: java.lang.Object
StackMap stack:
aload 1
aload 3
invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lorg/xnio/nio/NioTcpServer;
0 55 1 option Lorg/xnio/Option<TT;>;
0 55 2 value TT;
2 4 3 old Ljava/lang/Object;
6 11 3 old Ljava/lang/Object;
19 20 3 old Ljava/lang/Object;
26 27 3 old Ljava/lang/Object;
33 34 3 old Ljava/lang/Object;
40 41 3 old Ljava/lang/Object;
43 44 3 old Ljava/lang/Object;
46 47 3 old Ljava/lang/Object;
49 50 3 old Ljava/lang/Object;
52 53 3 old Ljava/lang/Object;
54 55 3 old Ljava/lang/Object;
7 10 4 newValue I
13 19 4 newValue I
16 19 5 oldValue I
Exceptions:
throws java.lang.IllegalArgumentException, java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
MethodParameters:
Name Flags
option final
value final
private long updateWaterMark(int, int);
descriptor: (II)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=19, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.xnio.nio.NioTcpServer.$assertionsDisabled:Z
ifne 1
iload 1
iconst_m1
if_icmpne 1
iload 2
iconst_m1
if_icmpne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.xnio.nio.NioTcpServer.$assertionsDisabled:Z
ifne 2
iload 1
iconst_m1
if_icmpeq 2
iload 2
iconst_m1
if_icmpeq 2
iload 1
iload 2
if_icmple 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.xnio.nio.NioTcpServer.connectionStatus:J
lstore 3
start local 3 3: lload 3
invokestatic org.xnio.nio.NioTcpServer.getLowWater:(J)I
istore 8
start local 8 4: lload 3
invokestatic org.xnio.nio.NioTcpServer.getHighWater:(J)I
istore 7
start local 7 5: iload 1
iconst_m1
if_icmpne 6
iload 8
goto 7
StackMap locals: org.xnio.nio.NioTcpServer int int long top top int int
StackMap stack:
6: iload 1
StackMap locals:
StackMap stack: int
7: istore 9
start local 9 8: iload 2
iconst_m1
if_icmpne 9
iload 7
goto 10
StackMap locals: int
StackMap stack:
9: iload 2
StackMap locals:
StackMap stack: int
10: istore 10
start local 10 11: iload 1
iconst_m1
if_icmpeq 14
iload 9
iload 10
if_icmple 14
12: iload 9
istore 10
13: goto 16
StackMap locals: int
StackMap stack:
14: iload 2
iconst_m1
if_icmpeq 16
iload 10
iload 9
if_icmpge 16
15: iload 10
istore 9
16: StackMap locals:
StackMap stack:
iload 8
iload 9
if_icmpne 18
iload 7
iload 10
if_icmpne 18
17: lload 3
lreturn
18: StackMap locals:
StackMap stack:
iload 9
i2l
iconst_0
lshl
iload 10
i2l
bipush 31
lshl
lor
lstore 5
start local 5 19: getstatic org.xnio.nio.NioTcpServer.connectionStatusUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 3
lload 5
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 2
20: aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
astore 11
start local 11 21: aload 11
arraylength
istore 12
start local 12 22: iload 9
iload 12
idiv
istore 13
start local 13 23: iload 9
iload 12
irem
istore 14
start local 14 24: iload 10
iload 12
idiv
istore 15
start local 15 25: iload 10
iload 12
irem
istore 16
start local 16 26: iconst_0
istore 17
start local 17 27: goto 35
28: StackMap locals: org.xnio.nio.NioTcpServer int int long long int int int int org.xnio.nio.NioTcpServerHandle[] int int int int int int
StackMap stack:
aload 11
iload 17
aaload
astore 18
start local 18 29: aload 18
iload 17
iload 16
if_icmpge 30
iload 15
iconst_1
iadd
goto 31
StackMap locals: org.xnio.nio.NioTcpServer int int long long int int int int org.xnio.nio.NioTcpServerHandle[] int int int int int int org.xnio.nio.NioTcpServerHandle
StackMap stack: org.xnio.nio.NioTcpServerHandle
30: iload 15
StackMap locals: org.xnio.nio.NioTcpServer int int long long int int int int org.xnio.nio.NioTcpServerHandle[] int int int int int int org.xnio.nio.NioTcpServerHandle
StackMap stack: org.xnio.nio.NioTcpServerHandle int
31: iload 17
iload 14
if_icmpge 32
iload 13
iconst_1
iadd
goto 33
StackMap locals: org.xnio.nio.NioTcpServer int int long long int int int int org.xnio.nio.NioTcpServerHandle[] int int int int int int org.xnio.nio.NioTcpServerHandle
StackMap stack: org.xnio.nio.NioTcpServerHandle int
32: iload 13
StackMap locals: org.xnio.nio.NioTcpServer int int long long int int int int org.xnio.nio.NioTcpServerHandle[] int int int int int int org.xnio.nio.NioTcpServerHandle
StackMap stack: org.xnio.nio.NioTcpServerHandle int int
33: invokevirtual org.xnio.nio.NioTcpServerHandle.executeSetTask:(II)V
end local 18 34: iinc 17 1
StackMap locals:
StackMap stack:
35: iload 17
aload 11
arraylength
if_icmplt 28
end local 17 36: lload 3
lreturn
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/xnio/nio/NioTcpServer;
0 37 1 reqNewLowWater I
0 37 2 reqNewHighWater I
3 37 3 oldVal J
19 37 5 newVal J
5 37 7 oldHighWater I
4 37 8 oldLowWater I
8 37 9 newLowWater I
11 37 10 newHighWater I
21 37 11 conduits [Lorg/xnio/nio/NioTcpServerHandle;
22 37 12 threadCount I
23 37 13 perThreadLow I
24 37 14 perThreadLowRem I
25 37 15 perThreadHigh I
26 37 16 perThreadHighRem I
27 36 17 i I
29 34 18 conduit Lorg/xnio/nio/NioTcpServerHandle;
MethodParameters:
Name Flags
reqNewLowWater
reqNewHighWater
private static int getHighWater(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 4611686016279904256
land
bipush 31
lshr
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 value J
MethodParameters:
Name Flags
value final
private static int getLowWater(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 2147483647
land
iconst_0
lshr
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 value J
MethodParameters:
Name Flags
value final
public org.xnio.nio.NioSocketStreamConnection accept();
descriptor: ()Lorg/xnio/nio/NioSocketStreamConnection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=1
start local 0 0: invokestatic org.xnio.nio.WorkerThread.getCurrent:()Lorg/xnio/nio/WorkerThread;
astore 1
start local 1 1: aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
aload 1
invokevirtual org.xnio.nio.WorkerThread.getNumber:()I
aaload
astore 2
start local 2 2: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.getConnection:()Z
ifne 4
3: aconst_null
areturn
4: StackMap locals: org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle
StackMap stack:
iconst_0
istore 4
start local 4 5: aload 0
getfield org.xnio.nio.NioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.accept:()Ljava/nio/channels/SocketChannel;
astore 3
start local 3 6: aload 3
ifnull 60
7: aload 3
invokevirtual java.nio.channels.SocketChannel.getLocalAddress:()Ljava/net/SocketAddress;
astore 5
start local 5 8: aload 5
instanceof java.net.InetSocketAddress
ifeq 12
9: aload 5
checkcast java.net.InetSocketAddress
astore 7
start local 7 10: aload 7
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.hashCode:()I
bipush 23
imul
aload 7
invokevirtual java.net.InetSocketAddress.getPort:()I
iadd
istore 6
end local 7 start local 6 11: goto 16
end local 6 StackMap locals: java.nio.channels.SocketChannel int java.net.SocketAddress
StackMap stack:
12: aload 5
instanceof org.xnio.LocalSocketAddress
ifeq 15
13: aload 5
checkcast org.xnio.LocalSocketAddress
invokevirtual org.xnio.LocalSocketAddress.getName:()Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
istore 6
start local 6 14: goto 16
end local 6 15: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.Object.hashCode:()I
istore 6
start local 6 16: StackMap locals: int
StackMap stack:
aload 3
invokevirtual java.nio.channels.SocketChannel.getRemoteAddress:()Ljava/net/SocketAddress;
astore 7
start local 7 17: aload 7
instanceof java.net.InetSocketAddress
ifeq 21
18: aload 7
checkcast java.net.InetSocketAddress
astore 8
start local 8 19: aload 8
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.hashCode:()I
bipush 23
imul
aload 8
invokevirtual java.net.InetSocketAddress.getPort:()I
iadd
bipush 23
imul
iload 6
iadd
istore 6
end local 8 20: goto 25
StackMap locals: java.net.SocketAddress
StackMap stack:
21: aload 7
instanceof org.xnio.LocalSocketAddress
ifeq 24
22: aload 7
checkcast org.xnio.LocalSocketAddress
invokevirtual org.xnio.LocalSocketAddress.getName:()Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
bipush 23
imul
iload 6
iadd
istore 6
23: goto 25
24: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.Object.hashCode:()I
bipush 23
imul
iload 6
iadd
istore 6
25: StackMap locals:
StackMap stack:
aload 3
iconst_0
invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
26: aload 3
invokevirtual java.nio.channels.SocketChannel.socket:()Ljava/net/Socket;
astore 8
start local 8 27: aload 8
aload 0
getfield org.xnio.nio.NioTcpServer.keepAlive:I
ifeq 28
iconst_1
goto 29
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket
28: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket int
29: invokevirtual java.net.Socket.setKeepAlive:(Z)V
30: aload 8
aload 0
getfield org.xnio.nio.NioTcpServer.oobInline:I
ifeq 31
iconst_1
goto 32
StackMap locals:
StackMap stack: java.net.Socket
31: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket int
32: invokevirtual java.net.Socket.setOOBInline:(Z)V
33: aload 8
aload 0
getfield org.xnio.nio.NioTcpServer.tcpNoDelay:I
ifeq 34
iconst_1
goto 35
StackMap locals:
StackMap stack: java.net.Socket
34: iconst_0
StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket int
35: invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
36: aload 0
getfield org.xnio.nio.NioTcpServer.sendBuffer:I
istore 9
start local 9 37: iload 9
ifle 38
aload 8
iload 9
invokevirtual java.net.Socket.setSendBufferSize:(I)V
38: StackMap locals: int
StackMap stack:
aload 0
getfield org.xnio.nio.NioTcpServer.worker:Lorg/xnio/nio/NioXnioWorker;
iload 6
invokevirtual org.xnio.nio.NioXnioWorker.getIoThread:(I)Lorg/xnio/nio/WorkerThread;
astore 10
start local 10 39: aload 10
aload 3
invokevirtual org.xnio.nio.WorkerThread.registerChannel:(Ljava/nio/channels/spi/AbstractSelectableChannel;)Ljava/nio/channels/SelectionKey;
astore 11
start local 11 40: new org.xnio.nio.NioSocketStreamConnection
dup
aload 10
aload 11
aload 2
invokespecial org.xnio.nio.NioSocketStreamConnection.<init>:(Lorg/xnio/nio/WorkerThread;Ljava/nio/channels/SelectionKey;Lorg/xnio/nio/ChannelClosed;)V
astore 12
start local 12 41: aload 12
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
aload 0
getfield org.xnio.nio.NioTcpServer.readTimeout:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.nio.NioSocketStreamConnection.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
pop
42: aload 12
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
aload 0
getfield org.xnio.nio.NioTcpServer.writeTimeout:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.xnio.nio.NioSocketStreamConnection.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
pop
43: iconst_1
istore 4
44: aload 12
astore 14
45: iload 4
ifne 46
aload 3
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
46: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket int org.xnio.nio.WorkerThread java.nio.channels.SelectionKey org.xnio.nio.NioSocketStreamConnection top org.xnio.nio.NioSocketStreamConnection
StackMap stack:
iload 4
ifne 48
47: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.freeConnection:()V
48: StackMap locals:
StackMap stack:
aload 14
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 49: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int
StackMap stack: java.lang.Throwable
astore 13
50: iload 4
ifne 51
aload 3
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
51: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int top top top top top top top top java.lang.Throwable
StackMap stack:
aload 13
athrow
end local 3 52: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle top int
StackMap stack: java.io.IOException
pop
53: iload 4
ifne 55
54: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.freeConnection:()V
55: StackMap locals:
StackMap stack:
aconst_null
areturn
56: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
57: iload 4
ifne 59
58: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.freeConnection:()V
59: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle top int top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 15
athrow
start local 3 60: StackMap locals: org.xnio.nio.NioTcpServer org.xnio.nio.WorkerThread org.xnio.nio.NioTcpServerHandle java.nio.channels.SocketChannel int
StackMap stack:
iload 4
ifne 62
61: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.freeConnection:()V
62: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lorg/xnio/nio/NioTcpServer;
1 63 1 current Lorg/xnio/nio/WorkerThread;
2 63 2 handle Lorg/xnio/nio/NioTcpServerHandle;
6 52 3 accepted Ljava/nio/channels/SocketChannel;
60 63 3 accepted Ljava/nio/channels/SocketChannel;
5 63 4 ok Z
8 49 5 localAddress Ljava/net/SocketAddress;
11 12 6 hash I
14 15 6 hash I
16 49 6 hash I
10 11 7 address Ljava/net/InetSocketAddress;
17 49 7 remoteAddress Ljava/net/SocketAddress;
19 20 8 address Ljava/net/InetSocketAddress;
27 49 8 socket Ljava/net/Socket;
37 49 9 sendBuffer I
39 49 10 ioThread Lorg/xnio/nio/WorkerThread;
40 49 11 selectionKey Ljava/nio/channels/SelectionKey;
41 49 12 newConnection Lorg/xnio/nio/NioSocketStreamConnection;
Exception table:
from to target type
7 45 49 any
5 46 52 Class java.io.IOException
49 52 52 Class java.io.IOException
5 46 56 any
49 53 56 any
Exceptions:
throws java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "TCP server (NIO) <%s>"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
public org.xnio.ChannelListener<? super org.xnio.nio.NioTcpServer> getAcceptListener();
descriptor: ()Lorg/xnio/ChannelListener;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioTcpServer.acceptListener:Lorg/xnio/ChannelListener;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
Signature: ()Lorg/xnio/ChannelListener<-Lorg/xnio/nio/NioTcpServer;>;
public void setAcceptListener(org.xnio.ChannelListener<? super org.xnio.nio.NioTcpServer>);
descriptor: (Lorg/xnio/ChannelListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.xnio.nio.NioTcpServer.acceptListener:Lorg/xnio/ChannelListener;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/nio/NioTcpServer;
0 2 1 acceptListener Lorg/xnio/ChannelListener<-Lorg/xnio/nio/NioTcpServer;>;
Signature: (Lorg/xnio/ChannelListener<-Lorg/xnio/nio/NioTcpServer;>;)V
MethodParameters:
Name Flags
acceptListener final
public org.xnio.ChannelListener$Setter<org.xnio.nio.NioTcpServer> getAcceptSetter();
descriptor: ()Lorg/xnio/ChannelListener$Setter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.xnio.channels.AcceptListenerSettable$Setter
dup
aload 0
invokespecial org.xnio.channels.AcceptListenerSettable$Setter.<init>:(Lorg/xnio/channels/AcceptListenerSettable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
Signature: ()Lorg/xnio/ChannelListener$Setter<Lorg/xnio/nio/NioTcpServer;>;
public boolean isOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.isOpen:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
public java.net.SocketAddress getLocalAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioTcpServer.socket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.getLocalSocketAddress:()Ljava/net/SocketAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
public <A extends java.net.SocketAddress> A getLocalAddress(java.lang.Class<A>);
descriptor: (Ljava/lang/Class;)Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.xnio.nio.NioTcpServer.getLocalAddress:()Ljava/net/SocketAddress;
astore 2
start local 2 1: aload 1
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 2
aload 1
aload 2
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.SocketAddress
goto 3
StackMap locals: java.net.SocketAddress
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.net.SocketAddress
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/xnio/nio/NioTcpServer;
0 4 1 type Ljava/lang/Class<TA;>;
1 4 2 address Ljava/net/SocketAddress;
Signature: <A:Ljava/net/SocketAddress;>(Ljava/lang/Class<TA;>;)TA;
MethodParameters:
Name Flags
type final
public void suspendAccepts();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield org.xnio.nio.NioTcpServer.resumed:Z
1: aload 0
iconst_0
invokevirtual org.xnio.nio.NioTcpServer.doResume:(I)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/nio/NioTcpServer;
public void resumeAccepts();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.xnio.nio.NioTcpServer.resumed:Z
1: aload 0
bipush 16
invokevirtual org.xnio.nio.NioTcpServer.doResume:(I)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/nio/NioTcpServer;
public boolean isAcceptResumed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioTcpServer.resumed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
private void doResume(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: iload 1
ifne 7
1: aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.xnio.nio.NioTcpServer int top int int org.xnio.nio.NioTcpServerHandle[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.suspend:()V
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: goto 12
7: StackMap locals: org.xnio.nio.NioTcpServer int
StackMap stack:
aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 11
StackMap locals: org.xnio.nio.NioTcpServer int top int int org.xnio.nio.NioTcpServerHandle[]
StackMap stack:
8: aload 5
iload 3
aaload
astore 2
start local 2 9: aload 2
invokevirtual org.xnio.nio.NioTcpServerHandle.resume:()V
end local 2 10: iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
iload 4
if_icmplt 8
12: StackMap locals: org.xnio.nio.NioTcpServer int
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/xnio/nio/NioTcpServer;
0 13 1 op I
3 4 2 handle Lorg/xnio/nio/NioTcpServerHandle;
9 10 2 handle Lorg/xnio/nio/NioTcpServerHandle;
MethodParameters:
Name Flags
op final
public void wakeupAccepts();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: getstatic org.xnio.nio.Log.tcpServerLog:Lorg/xnio/nio/Log;
getstatic org.xnio.nio.NioTcpServer.FQCN:Ljava/lang/String;
getstatic org.jboss.logging.Logger$Level.TRACE:Lorg/jboss/logging/Logger$Level;
aconst_null
ldc "Wake up accepts on %s"
aload 0
invokeinterface org.xnio.nio.Log.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
invokevirtual org.xnio.nio.NioTcpServer.resumeAccepts:()V
2: aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
astore 1
start local 1 3: invokestatic org.xnio.IoUtils.getThreadLocalRandom:()Ljava/util/Random;
aload 1
arraylength
invokevirtual java.util.Random.nextInt:(I)I
istore 2
start local 2 4: aload 1
iload 2
aaload
bipush 16
invokevirtual org.xnio.nio.NioTcpServerHandle.wakeup:(I)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/xnio/nio/NioTcpServer;
3 6 1 handles [Lorg/xnio/nio/NioTcpServerHandle;
4 6 2 idx I
public void awaitAcceptable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "awaitAcceptable"
invokeinterface org.xnio.nio.Log.unsupported:(Ljava/lang/String;)Ljava/lang/UnsupportedOperationException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
Exceptions:
throws java.io.IOException
public void awaitAcceptable(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
ldc "awaitAcceptable"
invokeinterface org.xnio.nio.Log.unsupported:(Ljava/lang/String;)Ljava/lang/UnsupportedOperationException;
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
0 1 1 time J
0 1 3 timeUnit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time final
timeUnit final
public org.xnio.XnioExecutor getAcceptThread();
descriptor: ()Lorg/xnio/XnioExecutor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.xnio.nio.NioTcpServer.getIoThread:()Lorg/xnio/XnioIoThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
org.xnio.nio.NioTcpServerHandle getHandle(int);
descriptor: (I)Lorg/xnio/nio/NioTcpServerHandle;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.nio.NioTcpServer.handles:[Lorg/xnio/nio/NioTcpServerHandle;
iload 1
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
0 1 1 number I
MethodParameters:
Name Flags
number final
int getTokenConnectionCount();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.NioTcpServer.tokenConnectionCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/NioTcpServer;
public org.xnio.channels.CloseableChannel accept();
descriptor: ()Lorg/xnio/channels/CloseableChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioTcpServer.accept:()Lorg/xnio/nio/NioSocketStreamConnection;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
public org.xnio.channels.ConnectedChannel accept();
descriptor: ()Lorg/xnio/channels/ConnectedChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.nio.NioTcpServer.accept:()Lorg/xnio/nio/NioSocketStreamConnection;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
}
Signature: Lorg/xnio/nio/AbstractNioChannel<Lorg/xnio/nio/NioTcpServer;>;Lorg/xnio/channels/AcceptingChannel<Lorg/xnio/StreamConnection;>;Lorg/xnio/channels/AcceptListenerSettable<Lorg/xnio/nio/NioTcpServer;>;
SourceFile: "NioTcpServer.java"
NestMembers:
org.xnio.nio.NioTcpServer$1
InnerClasses:
public final Level = org.jboss.logging.Logger$Level of org.jboss.logging.Logger
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public SetBuilder = org.xnio.Option$SetBuilder of org.xnio.Option
public Setter = org.xnio.channels.AcceptListenerSettable$Setter of org.xnio.channels.AcceptListenerSettable
org.xnio.nio.NioTcpServer$1