public class org.jruby.ext.socket.RubyTCPServer extends org.jruby.ext.socket.RubyTCPSocket
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.socket.RubyTCPServer
super_class: org.jruby.ext.socket.RubyTCPSocket
{
private static org.jruby.runtime.ObjectAllocator TCPSERVER_ALLOCATOR;
descriptor: Lorg/jruby/runtime/ObjectAllocator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.jruby.ext.socket.RubyTCPServer$1
dup
invokespecial org.jruby.ext.socket.RubyTCPServer$1.<init>:()V
putstatic org.jruby.ext.socket.RubyTCPServer.TCPSERVER_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
1: return
LocalVariableTable:
Start End Slot Name Signature
static void createTCPServer(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
1: ldc "TCPServer"
aload 0
ldc "TCPSocket"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
getstatic org.jruby.ext.socket.RubyTCPServer.TCPSERVER_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
2: invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 1
start local 1 3: aload 1
ldc Lorg/jruby/ext/socket/RubyTCPServer;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
4: aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
ldc "TCPserver"
aload 1
invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 runtime Lorg/jruby/Ruby;
3 6 1 rb_cTCPServer Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.jruby.ext.socket.RubyTCPSocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 2 1 runtime Lorg/jruby/Ruby;
0 2 2 type Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
type
public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aconst_null
astore 5
start local 5 2: ldc "0.0.0.0"
astore 6
start local 6 3: aload 2
arraylength
tableswitch { // 1 - 2
1: 13
2: 4
default: 14
}
4: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject java.lang.String
StackMap stack:
aload 2
iconst_0
aaload
astore 4
start local 4 5: aload 2
iconst_1
aaload
astore 5
6: aload 4
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 8
7: goto 14
8: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.lang.String
StackMap stack:
aload 4
instanceof org.jruby.RubyFixnum
ifeq 10
9: aload 3
aload 4
aload 3
invokevirtual org.jruby.Ruby.getString:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
10: StackMap locals:
StackMap stack:
aload 4
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
astore 7
start local 7 11: aload 7
invokevirtual org.jruby.RubyString.size:()I
ifle 14
aload 7
invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
astore 6
12: goto 14
end local 7 end local 4 13: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject java.lang.String
StackMap stack:
aload 2
iconst_0
aaload
astore 5
14: StackMap locals:
StackMap stack:
aload 1
aload 5
invokestatic org.jruby.ext.socket.SocketUtils.getPortFrom:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 7
start local 7 15: aload 6
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
astore 8
start local 8 16: invokestatic java.nio.channels.ServerSocketChannel.open:()Ljava/nio/channels/ServerSocketChannel;
astore 9
start local 9 17: aload 9
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
iconst_1
invokevirtual java.net.ServerSocket.setReuseAddress:(Z)V
18: new java.net.InetSocketAddress
dup
aload 8
iload 7
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
astore 10
start local 10 19: aload 9
invokevirtual java.nio.channels.ServerSocketChannel.socket:()Ljava/net/ServerSocket;
aload 10
invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;)V
20: aload 0
aload 3
aload 9
invokestatic org.jruby.ext.socket.RubyTCPServer.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
invokevirtual org.jruby.ext.socket.RubyTCPServer.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
end local 10 end local 9 end local 8 21: goto 35
StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject java.lang.String int
StackMap stack: java.net.UnknownHostException
22: pop
23: aload 3
ldc "initialize: name or service not known"
invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
24: StackMap locals:
StackMap stack: java.net.BindException
astore 8
start local 8 25: aload 3
aload 8
invokevirtual org.jruby.Ruby.newErrnoEADDRFromBindException:(Ljava/net/BindException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 8 26: StackMap locals:
StackMap stack: java.net.SocketException
astore 8
start local 8 27: aload 8
invokevirtual java.net.SocketException.getMessage:()Ljava/lang/String;
astore 9
start local 9 28: aload 9
ldc "Permission denied"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpeq 30
29: aload 3
ldc "bind(2)"
invokevirtual org.jruby.Ruby.newErrnoEACCESError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
30: StackMap locals: java.net.SocketException java.lang.String
StackMap stack:
aload 3
ldc "initialize: name or service not known"
invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 9 end local 8 31: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject java.lang.String int
StackMap stack: java.io.IOException
astore 8
start local 8 32: aload 3
aload 8
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 8 33: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 8
start local 8 34: aload 3
aload 8
invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 8 35: StackMap locals:
StackMap stack:
aload 0
areturn
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 36 1 context Lorg/jruby/runtime/ThreadContext;
0 36 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
1 36 3 runtime Lorg/jruby/Ruby;
5 13 4 _host Lorg/jruby/runtime/builtin/IRubyObject;
2 36 5 _port Lorg/jruby/runtime/builtin/IRubyObject;
3 36 6 host Ljava/lang/String;
11 13 7 hostString Lorg/jruby/RubyString;
15 36 7 port I
16 21 8 addr Ljava/net/InetAddress;
17 21 9 ssc Ljava/nio/channels/ServerSocketChannel;
19 21 10 socket_address Ljava/net/InetSocketAddress;
25 26 8 e Ljava/net/BindException;
27 31 8 e Ljava/net/SocketException;
28 31 9 msg Ljava/lang/String;
32 33 8 e Ljava/io/IOException;
34 35 8 iae Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
15 21 22 Class java.net.UnknownHostException
15 21 24 Class java.net.BindException
15 21 26 Class java.net.SocketException
15 21 31 Class java.io.IOException
15 21 33 Class java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"initialize"}, required = 1, optional = 1, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject accept(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 2
start local 2 1: new org.jruby.ext.socket.RubyTCPSocket
dup
aload 2
aload 2
ldc "TCPSocket"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
invokespecial org.jruby.ext.socket.RubyTCPSocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
astore 3
start local 3 2: aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 4
start local 4 3: StackMap locals: org.jruby.Ruby org.jruby.ext.socket.RubyTCPSocket org.jruby.RubyThread
StackMap stack:
aload 4
aload 0
bipush 16
invokevirtual org.jruby.RubyThread.select:(Lorg/jruby/RubyIO;I)Z
istore 5
start local 5 4: iload 5
ifne 7
5: aload 1
invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
6: goto 3
7: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.jruby.ext.socket.RubyTCPServer.getServerSocketChannel:()Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.accept:()Ljava/nio/channels/SocketChannel;
astore 6
start local 6 8: aload 6
ifnonnull 9
goto 3
9: StackMap locals: java.nio.channels.SocketChannel
StackMap stack:
aload 6
invokevirtual java.nio.channels.SocketChannel.finishConnect:()Z
pop
10: aload 6
invokevirtual java.nio.channels.SocketChannel.blockingLock:()Ljava/lang/Object;
dup
astore 7
monitorenter
11: aload 6
iconst_0
invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
12: aload 6
iconst_1
invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
13: aload 7
monitorexit
14: goto 17
StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.ext.socket.RubyTCPSocket org.jruby.RubyThread int java.nio.channels.SocketChannel java.lang.Object
StackMap stack: java.lang.Throwable
15: aload 7
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
aload 3
aload 2
aload 6
invokestatic org.jruby.ext.socket.RubyTCPServer.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
invokevirtual org.jruby.ext.socket.RubyTCPSocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
18: aload 3
19: areturn
end local 6 end local 5 end local 4 20: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.ext.socket.RubyTCPSocket
StackMap stack: java.io.IOException
astore 4
start local 4 21: aload 2
aload 4
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 22 1 context Lorg/jruby/runtime/ThreadContext;
1 22 2 runtime Lorg/jruby/Ruby;
2 22 3 socket Lorg/jruby/ext/socket/RubyTCPSocket;
3 20 4 thread Lorg/jruby/RubyThread;
4 20 5 ready Z
8 20 6 connected Ljava/nio/channels/SocketChannel;
21 22 4 e Ljava/io/IOException;
Exception table:
from to target type
11 14 15 any
15 16 15 any
2 19 20 Class java.io.IOException
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"accept"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject accept_nonblock(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokevirtual org.jruby.ext.socket.RubyTCPServer.accept_nonblock:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"accept_nonblock"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject accept_nonblock(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
invokestatic org.jruby.ext.socket.RubyTCPServer.extractExceptionArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
invokevirtual org.jruby.ext.socket.RubyTCPServer.accept_nonblock:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 opts Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"accept_nonblock"})
MethodParameters:
Name Flags
context
opts
public org.jruby.runtime.builtin.IRubyObject accept_nonblock(org.jruby.runtime.ThreadContext, org.jruby.Ruby, boolean);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Z)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.jruby.ext.socket.RubyTCPSocket
dup
aload 2
aload 2
ldc "TCPSocket"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
invokespecial org.jruby.ext.socket.RubyTCPSocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
astore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aload 0
invokevirtual org.jruby.ext.socket.RubyTCPServer.getServerSocketChannel:()Ljava/nio/channels/ServerSocketChannel;
astore 6
start local 6 3: aload 6
invokevirtual java.nio.channels.ServerSocketChannel.blockingLock:()Ljava/lang/Object;
dup
astore 7
monitorenter
4: aload 6
invokevirtual java.nio.channels.ServerSocketChannel.isBlocking:()Z
istore 8
start local 8 5: aload 6
iconst_0
invokevirtual java.nio.channels.ServerSocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
6: aload 2
invokestatic java.nio.channels.spi.SelectorProvider.provider:()Ljava/nio/channels/spi/SelectorProvider;
invokestatic org.jruby.util.io.SelectorFactory.openWithRetryFrom:(Lorg/jruby/Ruby;Ljava/nio/channels/spi/SelectorProvider;)Ljava/nio/channels/Selector;
astore 5
7: aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
aload 0
bipush 16
lconst_0
invokevirtual org.jruby.RubyThread.select:(Lorg/jruby/RubyIO;IJ)Z
istore 9
start local 9 8: iload 9
ifne 20
9: iload 3
ifeq 11
10: aload 2
ldc "Resource temporarily unavailable"
invokevirtual org.jruby.Ruby.newErrnoEAGAINReadableError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
11: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object int int
StackMap stack:
aload 2
ldc "wait_readable"
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
astore 11
12: aload 5
ifnull 15
aload 5
invokevirtual java.nio.channels.Selector.close:()V
13: goto 15
StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object int int top org.jruby.runtime.builtin.IRubyObject
StackMap stack: java.lang.Exception
14: pop
15: StackMap locals:
StackMap stack:
aload 6
iload 8
invokevirtual java.nio.channels.ServerSocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
16: goto 18
StackMap locals:
StackMap stack: java.io.IOException
17: pop
18: StackMap locals:
StackMap stack:
aload 7
monitorexit
19: aload 11
areturn
20: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object int int
StackMap stack:
aload 4
aload 2
aload 6
invokevirtual java.nio.channels.ServerSocketChannel.accept:()Ljava/nio/channels/SocketChannel;
invokestatic org.jruby.ext.socket.RubyTCPServer.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
invokevirtual org.jruby.ext.socket.RubyTCPSocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
21: aload 4
astore 11
22: aload 5
ifnull 25
aload 5
invokevirtual java.nio.channels.Selector.close:()V
23: goto 25
StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object int int top org.jruby.runtime.builtin.IRubyObject
StackMap stack: java.lang.Exception
24: pop
25: StackMap locals:
StackMap stack:
aload 6
iload 8
invokevirtual java.nio.channels.ServerSocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
26: goto 28
StackMap locals:
StackMap stack: java.io.IOException
27: pop
28: StackMap locals:
StackMap stack:
aload 7
monitorexit
29: aload 11
areturn
end local 9 30: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object int
StackMap stack: java.io.IOException
astore 9
start local 9 31: aload 2
aload 9
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 9 32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
33: aload 5
ifnull 36
aload 5
invokevirtual java.nio.channels.Selector.close:()V
34: goto 36
StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object int top java.lang.Throwable
StackMap stack: java.lang.Exception
35: pop
36: StackMap locals:
StackMap stack:
aload 6
iload 8
invokevirtual java.nio.channels.ServerSocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
37: goto 39
StackMap locals:
StackMap stack: java.io.IOException
38: pop
39: StackMap locals:
StackMap stack:
aload 10
athrow
end local 8 40: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby int org.jruby.ext.socket.RubyTCPSocket java.nio.channels.Selector java.nio.channels.ServerSocketChannel java.lang.Object
StackMap stack: java.lang.Throwable
aload 7
monitorexit
41: athrow
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 42 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 42 1 context Lorg/jruby/runtime/ThreadContext;
0 42 2 runtime Lorg/jruby/Ruby;
0 42 3 ex Z
1 42 4 socket Lorg/jruby/ext/socket/RubyTCPSocket;
2 42 5 selector Ljava/nio/channels/Selector;
3 42 6 ssc Ljava/nio/channels/ServerSocketChannel;
5 40 8 oldBlocking Z
8 30 9 ready Z
31 32 9 e Ljava/io/IOException;
Exception table:
from to target type
12 13 14 Class java.lang.Exception
15 16 17 Class java.io.IOException
22 23 24 Class java.lang.Exception
25 26 27 Class java.io.IOException
5 12 30 Class java.io.IOException
20 22 30 Class java.io.IOException
5 12 32 any
20 22 32 any
30 32 32 any
33 34 35 Class java.lang.Exception
36 37 38 Class java.io.IOException
4 19 40 any
20 29 40 any
30 41 40 any
MethodParameters:
Name Flags
context
runtime
ex
public org.jruby.runtime.builtin.IRubyObject sysaccept(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 2
start local 2 1: aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 3
start local 3 2: StackMap locals: org.jruby.Ruby org.jruby.RubyThread
StackMap stack:
aload 3
aload 0
bipush 16
invokevirtual org.jruby.RubyThread.select:(Lorg/jruby/RubyIO;I)Z
istore 4
start local 4 3: iload 4
ifne 6
4: aload 1
invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
5: goto 2
6: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.jruby.ext.socket.RubyTCPServer.getServerSocketChannel:()Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.accept:()Ljava/nio/channels/SocketChannel;
astore 5
start local 5 7: aload 5
ifnonnull 8
goto 2
8: StackMap locals: java.nio.channels.SocketChannel
StackMap stack:
aload 5
invokevirtual java.nio.channels.SocketChannel.finishConnect:()Z
pop
9: aload 2
aload 5
invokestatic org.jruby.util.io.FilenoUtil.filenoFrom:(Ljava/nio/channels/Channel;)I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
10: areturn
end local 5 end local 4 end local 3 11: StackMap locals: org.jruby.ext.socket.RubyTCPServer org.jruby.runtime.ThreadContext org.jruby.Ruby
StackMap stack: java.io.IOException
astore 3
start local 3 12: aload 2
aload 3
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 13 1 context Lorg/jruby/runtime/ThreadContext;
1 13 2 runtime Lorg/jruby/Ruby;
2 11 3 thread Lorg/jruby/RubyThread;
3 11 4 ready Z
7 11 5 connected Ljava/nio/channels/SocketChannel;
12 13 3 e Ljava/io/IOException;
Exception table:
from to target type
1 10 11 Class java.io.IOException
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"sysaccept"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject listen(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 backlog Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"listen"}, required = 1)
MethodParameters:
Name Flags
context
backlog
public org.jruby.runtime.builtin.IRubyObject peeraddr(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "not supported"
invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"peeraddr"}, rest = true)
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject getpeername(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "not supported"
invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"getpeername"}, rest = true)
MethodParameters:
Name Flags
context
args
public static org.jruby.runtime.builtin.IRubyObject open(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 0
ldc "new"
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 4
start local 4 1: aload 3
invokevirtual org.jruby.runtime.Block.isGiven:()Z
ifne 2
aload 4
areturn
2: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 3
aload 0
aload 4
invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
3: aload 4
aload 0
ldc "close"
invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
4: aload 6
areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
6: aload 4
aload 0
ldc "close"
invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
7: aload 5
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 context Lorg/jruby/runtime/ThreadContext;
0 8 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 8 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 8 3 block Lorg/jruby/runtime/Block;
1 8 4 tcpServer Lorg/jruby/runtime/builtin/IRubyObject;
Exception table:
from to target type
2 3 5 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(rest = true, meta = true)
MethodParameters:
Name Flags
context
recv
args
block
public java.nio.channels.ServerSocketChannel getServerSocketChannel();
descriptor: ()Ljava/nio/channels/ServerSocketChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.socket.RubyTCPServer.getChannel:()Ljava/nio/channels/Channel;
checkcast java.nio.channels.ServerSocketChannel
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
public org.jruby.runtime.builtin.IRubyObject shutdown(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newErrnoENOTCONNError:()Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newErrnoENOTCONNError:()Lorg/jruby/exceptions/RaiseException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newErrnoENOTCONNError:()Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 sep Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
sep
public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newErrnoENOTCONNError:()Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 sep Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 limit Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
sep
limit
public org.jruby.runtime.builtin.IRubyObject accept();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.socket.RubyTCPServer.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.ext.socket.RubyTCPServer.accept:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public org.jruby.runtime.builtin.IRubyObject listen(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.ext.socket.RubyTCPServer.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.ext.socket.RubyTCPServer.listen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/socket/RubyTCPServer;
0 1 1 backlog Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
backlog
public static org.jruby.runtime.builtin.IRubyObject open(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
aload 1
aload 2
invokestatic org.jruby.ext.socket.RubyTCPServer.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
recv
args
block
}
SourceFile: "RubyTCPServer.java"
NestMembers:
org.jruby.ext.socket.RubyTCPServer$1
InnerClasses:
org.jruby.ext.socket.RubyTCPServer$1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyClass(name = {"TCPServer"}, parent = "TCPSocket")