final class org.xnio.nio.QueuedNioTcpServer extends org.xnio.nio.AbstractNioChannel<org.xnio.nio.QueuedNioTcpServer> implements org.xnio.channels.AcceptingChannel<org.xnio.StreamConnection>, org.xnio.channels.AcceptListenerSettable<org.xnio.nio.QueuedNioTcpServer>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.xnio.nio.QueuedNioTcpServer
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.QueuedNioTcpServer> acceptListener;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Lorg/xnio/ChannelListener<-Lorg/xnio/nio/QueuedNioTcpServer;>;
private final org.xnio.nio.QueuedNioTcpServerHandle handle;
descriptor: Lorg/xnio/nio/QueuedNioTcpServerHandle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.nio.WorkerThread thread;
descriptor: Lorg/xnio/nio/WorkerThread;
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 final java.util.List<java.util.concurrent.BlockingQueue<java.nio.channels.SocketChannel>> acceptQueues;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/util/concurrent/BlockingQueue<Ljava/nio/channels/SocketChannel;>;>;
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 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 int openConnections;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private volatile boolean suspendedDueToWatermark;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean suspended;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.QueuedNioTcpServer> keepAliveUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.QueuedNioTcpServer> oobInlineUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.QueuedNioTcpServer> tcpNoDelayUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.QueuedNioTcpServer> sendBufferUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.QueuedNioTcpServer> readTimeoutUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.nio.QueuedNioTcpServer> writeTimeoutUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.xnio.nio.QueuedNioTcpServer> connectionStatusUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/xnio/nio/QueuedNioTcpServer;>;
private final java.lang.Runnable acceptTask;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Runnable connectionClosedTask;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/xnio/nio/QueuedNioTcpServer;
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.QueuedNioTcpServer.$assertionsDisabled:Z
3: ldc Lorg/xnio/nio/QueuedNioTcpServer;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
putstatic org.xnio.nio.QueuedNioTcpServer.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.QueuedNioTcpServer.options:Ljava/util/Set;
17: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "keepAlive"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.keepAliveUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
18: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "oobInline"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.oobInlineUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
19: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "tcpNoDelay"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.tcpNoDelayUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
20: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "sendBuffer"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.sendBufferUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
21: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "readTimeout"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.readTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
22: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "writeTimeout"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.writeTimeoutUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
23: ldc Lorg/xnio/nio/QueuedNioTcpServer;
ldc "connectionStatus"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
putstatic org.xnio.nio.QueuedNioTcpServer.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=8, locals=10, 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.QueuedNioTcpServer.sendBuffer:I
2: aload 0
ldc 4611686018427387903
putfield org.xnio.nio.QueuedNioTcpServer.connectionStatus:J
3: aload 0
new org.xnio.nio.QueuedNioTcpServer$1
dup
aload 0
invokespecial org.xnio.nio.QueuedNioTcpServer$1.<init>:(Lorg/xnio/nio/QueuedNioTcpServer;)V
putfield org.xnio.nio.QueuedNioTcpServer.acceptTask:Ljava/lang/Runnable;
4: aload 0
new org.xnio.nio.QueuedNioTcpServer$2
dup
aload 0
invokespecial org.xnio.nio.QueuedNioTcpServer$2.<init>:(Lorg/xnio/nio/QueuedNioTcpServer;)V
putfield org.xnio.nio.QueuedNioTcpServer.connectionClosedTask:Ljava/lang/Runnable;
5: aload 0
aload 2
putfield org.xnio.nio.QueuedNioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
6: aload 0
aload 1
invokevirtual org.xnio.nio.NioXnioWorker.getAcceptThread:()Lorg/xnio/nio/WorkerThread;
putfield org.xnio.nio.QueuedNioTcpServer.thread:Lorg/xnio/nio/WorkerThread;
7: aload 1
invokevirtual org.xnio.nio.NioXnioWorker.getAll:()[Lorg/xnio/nio/WorkerThread;
astore 4
start local 4 8: new java.util.ArrayList
dup
aload 4
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: goto 13
11: StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List int
StackMap stack:
aload 5
iload 6
new java.util.concurrent.LinkedBlockingQueue
dup
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 4
arraylength
if_icmplt 11
end local 6 14: aload 0
aload 5
putfield org.xnio.nio.QueuedNioTcpServer.acceptQueues:Ljava/util/List;
15: aload 0
aload 2
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
putfield org.xnio.nio.QueuedNioTcpServer.socket:Ljava/net/ServerSocket;
16: aload 3
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 21
17: aload 3
getstatic org.xnio.Options.SEND_BUFFER:Lorg/xnio/Option;
ldc 65536
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 6
start local 6 18: iload 6
iconst_1
if_icmpge 20
19: 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
20: StackMap locals:
StackMap stack:
getstatic org.xnio.nio.QueuedNioTcpServer.sendBufferUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 6
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
end local 6 21: 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 25
22: getstatic org.xnio.nio.QueuedNioTcpServer.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 23
iconst_1
goto 24
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer
23: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer int
24: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
25: 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 29
26: getstatic org.xnio.nio.QueuedNioTcpServer.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 27
iconst_1
goto 28
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer
27: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer int
28: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
29: 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 33
30: getstatic org.xnio.nio.QueuedNioTcpServer.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 31
iconst_1
goto 32
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer
31: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.NioXnioWorker java.nio.channels.ServerSocketChannel org.xnio.OptionMap org.xnio.nio.WorkerThread[] java.util.List
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer int
32: invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.lazySet:(Ljava/lang/Object;I)V
33: 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 35
34: getstatic org.xnio.nio.QueuedNioTcpServer.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
35: 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 37
36: getstatic org.xnio.nio.QueuedNioTcpServer.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
37: 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 38
aload 3
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.contains:(Lorg/xnio/Option;)Z
ifeq 47
38: 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 6
start local 6 39: aload 3
getstatic org.xnio.Options.CONNECTION_LOW_WATER:Lorg/xnio/Option;
iload 6
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
istore 7
start local 7 40: iload 6
ifgt 42
41: invokestatic org.xnio.nio.QueuedNioTcpServer.badHighWater:()Ljava/lang/IllegalArgumentException;
athrow
42: StackMap locals: int int
StackMap stack:
iload 7
ifle 43
iload 7
iload 6
if_icmple 44
43: StackMap locals:
StackMap stack:
iload 6
invokestatic org.xnio.nio.QueuedNioTcpServer.badLowWater:(I)Ljava/lang/IllegalArgumentException;
athrow
44: StackMap locals:
StackMap stack:
iload 6
i2l
bipush 31
lshl
iload 7
i2l
iconst_0
lshl
lor
lstore 8
start local 8 45: getstatic org.xnio.nio.QueuedNioTcpServer.connectionStatusUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 8
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.lazySet:(Ljava/lang/Object;J)V
end local 8 46: goto 50
end local 7 end local 6 47: StackMap locals:
StackMap stack:
ldc 2147483647
istore 6
start local 6 48: ldc 2147483647
istore 7
start local 7 49: getstatic org.xnio.nio.QueuedNioTcpServer.connectionStatusUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
ldc 4611686018427387903
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.lazySet:(Ljava/lang/Object;J)V
50: StackMap locals: int int
StackMap stack:
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.thread:Lorg/xnio/nio/WorkerThread;
aload 2
invokevirtual org.xnio.nio.WorkerThread.registerChannel:(Ljava/nio/channels/spi/AbstractSelectableChannel;)Ljava/nio/channels/SelectionKey;
astore 8
start local 8 51: aload 0
new org.xnio.nio.QueuedNioTcpServerHandle
dup
aload 0
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.thread:Lorg/xnio/nio/WorkerThread;
aload 8
iload 6
iload 7
invokespecial org.xnio.nio.QueuedNioTcpServerHandle.<init>:(Lorg/xnio/nio/QueuedNioTcpServer;Lorg/xnio/nio/WorkerThread;Ljava/nio/channels/SelectionKey;II)V
putfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
52: aload 8
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
invokevirtual java.nio.channels.SelectionKey.attach:(Ljava/lang/Object;)Ljava/lang/Object;
pop
53: aload 0
aload 1
54: new org.xnio.nio.QueuedNioTcpServer$3
dup
aload 0
aload 1
invokespecial org.xnio.nio.QueuedNioTcpServer$3.<init>:(Lorg/xnio/nio/QueuedNioTcpServer;Lorg/xnio/nio/NioXnioWorker;)V
55: invokevirtual org.xnio.nio.NioXnioWorker.registerServerMXBean:(Lorg/xnio/management/XnioServerMXBean;)Lorg/xnio/ManagementRegistration;
putfield org.xnio.nio.QueuedNioTcpServer.mbeanHandle:Lorg/xnio/ManagementRegistration;
56: 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 57 0 this Lorg/xnio/nio/QueuedNioTcpServer;
0 57 1 worker Lorg/xnio/nio/NioXnioWorker;
0 57 2 channel Ljava/nio/channels/ServerSocketChannel;
0 57 3 optionMap Lorg/xnio/OptionMap;
8 57 4 workerThreads [Lorg/xnio/nio/WorkerThread;
9 57 5 acceptQueues Ljava/util/List<Ljava/util/concurrent/BlockingQueue<Ljava/nio/channels/SocketChannel;>;>;
10 14 6 i I
18 21 6 sendBufferSize I
39 47 6 highWater I
48 57 6 highWater I
40 47 7 lowWater I
49 57 7 lowWater I
45 46 8 highLowWater J
51 57 8 key Ljava/nio/channels/SelectionKey;
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=2, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.close:()V
1: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
iconst_1
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.cancelKey:(Z)V
4: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.mbeanHandle:Lorg/xnio/ManagementRegistration;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/lang/AutoCloseable;)V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
iconst_1
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.cancelKey:(Z)V
7: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.mbeanHandle:Lorg/xnio/ManagementRegistration;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/lang/AutoCloseable;)V
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/xnio/nio/QueuedNioTcpServer;
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.QueuedNioTcpServer.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/QueuedNioTcpServer;
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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer.keepAlive:I
ifeq 11
iconst_1
goto 12
StackMap locals:
StackMap stack: org.xnio.Option
11: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer 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.QueuedNioTcpServer.oobInline:I
ifeq 15
iconst_1
goto 16
StackMap locals:
StackMap stack: org.xnio.Option
15: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer 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.QueuedNioTcpServer.tcpNoDelay:I
ifeq 19
iconst_1
goto 20
StackMap locals:
StackMap stack: org.xnio.Option
19: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer 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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.QueuedNioTcpServer.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.QueuedNioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.QueuedNioTcpServer.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/QueuedNioTcpServer;
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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer org.xnio.Option java.lang.Object top int
StackMap stack:
getstatic org.xnio.nio.QueuedNioTcpServer.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.QueuedNioTcpServer 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.QueuedNioTcpServer.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.QueuedNioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer
22: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer 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.QueuedNioTcpServer.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.QueuedNioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer
29: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer 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.QueuedNioTcpServer.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.QueuedNioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer
36: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.Option java.lang.Object
StackMap stack: java.util.concurrent.atomic.AtomicIntegerFieldUpdater org.xnio.nio.QueuedNioTcpServer 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.QueuedNioTcpServer.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.QueuedNioTcpServer.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.QueuedNioTcpServer.updateWaterMark:(II)J
invokestatic org.xnio.nio.QueuedNioTcpServer.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.QueuedNioTcpServer.updateWaterMark:(II)J
invokestatic org.xnio.nio.QueuedNioTcpServer.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/QueuedNioTcpServer;
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=11, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.xnio.nio.QueuedNioTcpServer.$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.QueuedNioTcpServer.$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.QueuedNioTcpServer.connectionStatus:J
lstore 3
start local 3 3: lload 3
invokestatic org.xnio.nio.QueuedNioTcpServer.getLowWater:(J)I
istore 8
start local 8 4: lload 3
invokestatic org.xnio.nio.QueuedNioTcpServer.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.QueuedNioTcpServer 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.QueuedNioTcpServer.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
invokevirtual org.xnio.nio.QueuedNioTcpServer.getIoThread:()Lorg/xnio/XnioIoThread;
new org.xnio.nio.QueuedNioTcpServer$4
dup
aload 0
invokespecial org.xnio.nio.QueuedNioTcpServer$4.<init>:(Lorg/xnio/nio/QueuedNioTcpServer;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
21: lload 3
lreturn
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 22 0 this Lorg/xnio/nio/QueuedNioTcpServer;
0 22 1 reqNewLowWater I
0 22 2 reqNewHighWater I
3 22 3 oldVal J
19 22 5 newVal J
5 22 7 oldHighWater I
4 22 8 oldLowWater I
8 22 9 newLowWater I
11 22 10 newHighWater I
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=9, args_size=1
start local 0 0: invokestatic org.xnio.nio.WorkerThread.getCurrent:()Lorg/xnio/nio/WorkerThread;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: org.xnio.nio.WorkerThread
StackMap stack:
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.acceptQueues:Ljava/util/List;
aload 1
invokevirtual org.xnio.nio.WorkerThread.getNumber:()I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.BlockingQueue
astore 2
start local 2 4: iconst_0
istore 4
start local 4 5: aload 2
invokeinterface java.util.concurrent.BlockingQueue.poll:()Ljava/lang/Object;
checkcast java.nio.channels.SocketChannel
astore 3
start local 3 6: aload 3
ifnull 24
7: aload 1
aload 3
invokevirtual org.xnio.nio.WorkerThread.registerChannel:(Ljava/nio/channels/spi/AbstractSelectableChannel;)Ljava/nio/channels/SelectionKey;
astore 5
start local 5 8: new org.xnio.nio.NioSocketStreamConnection
dup
aload 1
aload 5
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
invokespecial org.xnio.nio.NioSocketStreamConnection.<init>:(Lorg/xnio/nio/WorkerThread;Ljava/nio/channels/SelectionKey;Lorg/xnio/nio/ChannelClosed;)V
astore 6
start local 6 9: aload 6
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.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
10: aload 6
getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.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
11: iconst_1
istore 4
12: aload 6
astore 8
13: iload 4
ifne 16
14: aload 3
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
15: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.freeConnection:()V
16: StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.WorkerThread java.util.concurrent.BlockingQueue java.nio.channels.SocketChannel int java.nio.channels.SelectionKey org.xnio.nio.NioSocketStreamConnection top org.xnio.nio.NioSocketStreamConnection
StackMap stack:
aload 8
areturn
end local 6 end local 5 17: StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.WorkerThread java.util.concurrent.BlockingQueue java.nio.channels.SocketChannel int
StackMap stack: java.lang.Throwable
astore 7
18: iload 4
ifne 21
19: aload 3
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
20: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.freeConnection:()V
21: StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.WorkerThread java.util.concurrent.BlockingQueue java.nio.channels.SocketChannel int top top java.lang.Throwable
StackMap stack:
aload 7
athrow
end local 3 22: StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.WorkerThread java.util.concurrent.BlockingQueue top int
StackMap stack: java.io.IOException
pop
23: aconst_null
areturn
start local 3 24: StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.WorkerThread java.util.concurrent.BlockingQueue java.nio.channels.SocketChannel int
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 25 0 this Lorg/xnio/nio/QueuedNioTcpServer;
1 25 1 current Lorg/xnio/nio/WorkerThread;
4 25 2 socketChannels Ljava/util/concurrent/BlockingQueue<Ljava/nio/channels/SocketChannel;>;
6 22 3 accepted Ljava/nio/channels/SocketChannel;
24 25 3 accepted Ljava/nio/channels/SocketChannel;
5 25 4 ok Z
8 17 5 selectionKey Ljava/nio/channels/SelectionKey;
9 17 6 newConnection Lorg/xnio/nio/NioSocketStreamConnection;
Exception table:
from to target type
7 13 17 any
5 16 22 Class java.io.IOException
17 22 22 Class java.io.IOException
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/QueuedNioTcpServer;
public org.xnio.ChannelListener<? super org.xnio.nio.QueuedNioTcpServer> 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.QueuedNioTcpServer.acceptListener:Lorg/xnio/ChannelListener;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/QueuedNioTcpServer;
Signature: ()Lorg/xnio/ChannelListener<-Lorg/xnio/nio/QueuedNioTcpServer;>;
public void setAcceptListener(org.xnio.ChannelListener<? super org.xnio.nio.QueuedNioTcpServer>);
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.QueuedNioTcpServer.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/QueuedNioTcpServer;
0 2 1 acceptListener Lorg/xnio/ChannelListener<-Lorg/xnio/nio/QueuedNioTcpServer;>;
Signature: (Lorg/xnio/ChannelListener<-Lorg/xnio/nio/QueuedNioTcpServer;>;)V
MethodParameters:
Name Flags
acceptListener final
public org.xnio.ChannelListener$Setter<org.xnio.nio.QueuedNioTcpServer> 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/QueuedNioTcpServer;
Signature: ()Lorg/xnio/ChannelListener$Setter<Lorg/xnio/nio/QueuedNioTcpServer;>;
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.QueuedNioTcpServer.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/QueuedNioTcpServer;
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.QueuedNioTcpServer.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/QueuedNioTcpServer;
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.QueuedNioTcpServer.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/QueuedNioTcpServer;
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=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
bipush 16
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.suspend:(I)V
2: aload 0
iconst_1
putfield org.xnio.nio.QueuedNioTcpServer.suspended:Z
3: aload 1
monitorexit
4: goto 7
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.QueuedNioTcpServer
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/xnio/nio/QueuedNioTcpServer;
Exception table:
from to target type
1 4 5 any
5 6 5 any
public void resumeAccepts();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
iconst_0
putfield org.xnio.nio.QueuedNioTcpServer.suspended:Z
2: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
bipush 16
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.resume:(I)V
3: aload 1
monitorexit
4: goto 7
StackMap locals: org.xnio.nio.QueuedNioTcpServer org.xnio.nio.QueuedNioTcpServer
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/xnio/nio/QueuedNioTcpServer;
Exception table:
from to target type
1 4 5 any
5 6 5 any
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.QueuedNioTcpServer.suspended:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/nio/QueuedNioTcpServer;
public void wakeupAccepts();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic org.xnio.nio.Log.tcpServerLog:Lorg/xnio/nio/Log;
getstatic org.xnio.nio.QueuedNioTcpServer.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.QueuedNioTcpServer.resumeAccepts:()V
2: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.handle:Lorg/xnio/nio/QueuedNioTcpServerHandle;
bipush 16
invokevirtual org.xnio.nio.QueuedNioTcpServerHandle.wakeup:(I)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/xnio/nio/QueuedNioTcpServer;
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/QueuedNioTcpServer;
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/QueuedNioTcpServer;
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.QueuedNioTcpServer.getIoThread:()Lorg/xnio/XnioIoThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/nio/QueuedNioTcpServer;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
void handleReady();
descriptor: ()V
flags: (0x0000)
Code:
stack=7, locals=13, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.accept:()Ljava/nio/channels/SocketChannel;
astore 1
start local 1 1: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.suspendedDueToWatermark:Z
ifeq 9
2: getstatic org.xnio.nio.Log.tcpServerLog:Lorg/xnio/nio/Log;
getstatic org.xnio.nio.QueuedNioTcpServer.FQCN:Ljava/lang/String;
getstatic org.jboss.logging.Logger$Level.DEBUG:Lorg/jboss/logging/Logger$Level;
aconst_null
ldc "Exceeding connection high water limit (%s). Closing this new accepting request %s"
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.QueuedNioTcpServer.getHighWater:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokeinterface org.xnio.nio.Log.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 1
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
4: return
end local 1 5: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 6: getstatic org.xnio.nio.Log.tcpServerLog:Lorg/xnio/nio/Log;
getstatic org.xnio.nio.QueuedNioTcpServer.FQCN:Ljava/lang/String;
getstatic org.jboss.logging.Logger$Level.DEBUG:Lorg/jboss/logging/Logger$Level;
aload 2
ldc "Exception accepting request, closing server channel %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
7: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.channel:Ljava/nio/channels/ServerSocketChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
8: return
end local 2 start local 1 9: StackMap locals: java.nio.channels.SocketChannel
StackMap stack:
iconst_0
istore 2
start local 2 10: aload 1
ifnull 63
11: aload 1
invokevirtual java.nio.channels.SocketChannel.getLocalAddress:()Ljava/net/SocketAddress;
astore 3
start local 3 12: aload 3
instanceof java.net.InetSocketAddress
ifeq 16
13: aload 3
checkcast java.net.InetSocketAddress
astore 5
start local 5 14: aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.hashCode:()I
bipush 23
imul
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
iadd
istore 4
end local 5 start local 4 15: goto 20
end local 4 StackMap locals: int java.net.SocketAddress
StackMap stack:
16: aload 3
instanceof org.xnio.LocalSocketAddress
ifeq 19
17: aload 3
checkcast org.xnio.LocalSocketAddress
invokevirtual org.xnio.LocalSocketAddress.getName:()Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
istore 4
start local 4 18: goto 20
end local 4 19: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Object.hashCode:()I
istore 4
start local 4 20: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.nio.channels.SocketChannel.getRemoteAddress:()Ljava/net/SocketAddress;
astore 5
start local 5 21: aload 5
instanceof java.net.InetSocketAddress
ifeq 25
22: aload 5
checkcast java.net.InetSocketAddress
astore 6
start local 6 23: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.hashCode:()I
bipush 23
imul
aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
iadd
bipush 23
imul
iload 4
iadd
istore 4
end local 6 24: goto 29
StackMap locals: java.net.SocketAddress
StackMap stack:
25: aload 5
instanceof org.xnio.LocalSocketAddress
ifeq 28
26: aload 5
checkcast org.xnio.LocalSocketAddress
invokevirtual org.xnio.LocalSocketAddress.getName:()Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
bipush 23
imul
iload 4
iadd
istore 4
27: goto 29
28: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Object.hashCode:()I
bipush 23
imul
iload 4
iadd
istore 4
29: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
30: aload 1
invokevirtual java.nio.channels.SocketChannel.socket:()Ljava/net/Socket;
astore 6
start local 6 31: aload 6
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.keepAlive:I
ifeq 32
iconst_1
goto 33
StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket
32: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket int
33: invokevirtual java.net.Socket.setKeepAlive:(Z)V
34: aload 6
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.oobInline:I
ifeq 35
iconst_1
goto 36
StackMap locals:
StackMap stack: java.net.Socket
35: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket int
36: invokevirtual java.net.Socket.setOOBInline:(Z)V
37: aload 6
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.tcpNoDelay:I
ifeq 38
iconst_1
goto 39
StackMap locals:
StackMap stack: java.net.Socket
38: iconst_0
StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket
StackMap stack: java.net.Socket int
39: invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
40: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.sendBuffer:I
istore 7
start local 7 41: iload 7
ifle 42
aload 6
iload 7
invokevirtual java.net.Socket.setSendBufferSize:(I)V
42: StackMap locals: int
StackMap stack:
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.worker:Lorg/xnio/nio/NioXnioWorker;
iload 4
invokevirtual org.xnio.nio.NioXnioWorker.getIoThread:(I)Lorg/xnio/nio/WorkerThread;
astore 8
start local 8 43: iconst_1
istore 2
44: aload 8
invokevirtual org.xnio.nio.WorkerThread.getNumber:()I
istore 9
start local 9 45: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.acceptQueues:Ljava/util/List;
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.BlockingQueue
astore 10
start local 10 46: aload 10
aload 1
invokeinterface java.util.concurrent.BlockingQueue.add:(Ljava/lang/Object;)Z
pop
47: aload 8
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.acceptTask:Ljava/lang/Runnable;
invokevirtual org.xnio.nio.WorkerThread.execute:(Ljava/lang/Runnable;)V
48: aload 0
dup
getfield org.xnio.nio.QueuedNioTcpServer.openConnections:I
iconst_1
iadd
putfield org.xnio.nio.QueuedNioTcpServer.openConnections:I
49: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.openConnections:I
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.QueuedNioTcpServer.getHighWater:(J)I
if_icmplt 60
50: aload 0
dup
astore 11
monitorenter
51: aload 0
iconst_1
putfield org.xnio.nio.QueuedNioTcpServer.suspendedDueToWatermark:Z
52: getstatic org.xnio.nio.Log.tcpServerLog:Lorg/xnio/nio/Log;
getstatic org.xnio.nio.QueuedNioTcpServer.FQCN:Ljava/lang/String;
getstatic org.jboss.logging.Logger$Level.DEBUG:Lorg/jboss/logging/Logger$Level;
aconst_null
ldc "Total open connections reach high water limit (%s) by this new accepting request %s"
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.connectionStatus:J
invokestatic org.xnio.nio.QueuedNioTcpServer.getHighWater:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokeinterface org.xnio.nio.Log.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
53: aload 11
monitorexit
54: goto 60
StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int java.net.SocketAddress int java.net.SocketAddress java.net.Socket int org.xnio.nio.WorkerThread int java.util.concurrent.BlockingQueue org.xnio.nio.QueuedNioTcpServer
StackMap stack: java.lang.Throwable
55: aload 11
monitorexit
56: athrow
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 57: StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int
StackMap stack: java.lang.Throwable
astore 12
58: iload 2
ifne 59
aload 1
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
59: StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 12
athrow
60: StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel int
StackMap stack:
iload 2
ifne 63
aload 1
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 2 61: goto 63
StackMap locals: org.xnio.nio.QueuedNioTcpServer java.nio.channels.SocketChannel
StackMap stack: java.io.IOException
62: pop
63: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lorg/xnio/nio/QueuedNioTcpServer;
1 5 1 accepted Ljava/nio/channels/SocketChannel;
9 64 1 accepted Ljava/nio/channels/SocketChannel;
6 9 2 e Ljava/io/IOException;
10 61 2 ok Z
12 57 3 localAddress Ljava/net/SocketAddress;
15 16 4 hash I
18 19 4 hash I
20 57 4 hash I
14 15 5 address Ljava/net/InetSocketAddress;
21 57 5 remoteAddress Ljava/net/SocketAddress;
23 24 6 address Ljava/net/InetSocketAddress;
31 57 6 socket Ljava/net/Socket;
41 57 7 sendBuffer I
43 57 8 ioThread Lorg/xnio/nio/WorkerThread;
45 57 9 number I
46 57 10 queue Ljava/util/concurrent/BlockingQueue<Ljava/nio/channels/SocketChannel;>;
Exception table:
from to target type
0 4 5 Class java.io.IOException
51 54 55 any
55 56 55 any
11 57 57 any
9 61 62 Class java.io.IOException
public void connectionClosed();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.thread:Lorg/xnio/nio/WorkerThread;
aload 0
getfield org.xnio.nio.QueuedNioTcpServer.connectionClosedTask:Ljava/lang/Runnable;
invokevirtual org.xnio.nio.WorkerThread.execute:(Ljava/lang/Runnable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/nio/QueuedNioTcpServer;
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.QueuedNioTcpServer.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.QueuedNioTcpServer.accept:()Lorg/xnio/nio/NioSocketStreamConnection;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
static int access$2(org.xnio.nio.QueuedNioTcpServer);
descriptor: (Lorg/xnio/nio/QueuedNioTcpServer;)I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield org.xnio.nio.QueuedNioTcpServer.openConnections:I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/xnio/nio/AbstractNioChannel<Lorg/xnio/nio/QueuedNioTcpServer;>;Lorg/xnio/channels/AcceptingChannel<Lorg/xnio/StreamConnection;>;Lorg/xnio/channels/AcceptListenerSettable<Lorg/xnio/nio/QueuedNioTcpServer;>;
SourceFile: "QueuedNioTcpServer.java"
NestMembers:
org.xnio.nio.QueuedNioTcpServer$1 org.xnio.nio.QueuedNioTcpServer$2 org.xnio.nio.QueuedNioTcpServer$3 org.xnio.nio.QueuedNioTcpServer$4
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.QueuedNioTcpServer$1
org.xnio.nio.QueuedNioTcpServer$2
org.xnio.nio.QueuedNioTcpServer$3
org.xnio.nio.QueuedNioTcpServer$4