class sun.nio.ch.WindowsAsynchronousSocketChannelImpl extends sun.nio.ch.AsynchronousSocketChannelImpl implements sun.nio.ch.Iocp$OverlappedChannel
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.WindowsAsynchronousSocketChannelImpl
super_class: sun.nio.ch.AsynchronousSocketChannelImpl
{
private static final sun.misc.Unsafe unsafe;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static int addressSize;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final int SIZEOF_WSABUF;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int OFFSETOF_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int OFFSETOF_BUF;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MAX_WSABUF;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int SIZEOF_WSABUFARRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final long handle;
descriptor: J
flags: (0x0010) ACC_FINAL
private final sun.nio.ch.Iocp iocp;
descriptor: Lsun/nio/ch/Iocp;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int completionKey;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.PendingIoCache ioCache;
descriptor: Lsun/nio/ch/PendingIoCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long readBufferArray;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long writeBufferArray;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
1: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
invokevirtual sun.misc.Unsafe.addressSize:()I
putstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.addressSize:I
2: bipush 8
bipush 16
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.dependsArch:(II)I
putstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.SIZEOF_WSABUF:I
3: iconst_4
bipush 8
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.dependsArch:(II)I
putstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.OFFSETOF_BUF:I
4: bipush 16
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.SIZEOF_WSABUF:I
imul
putstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.SIZEOF_WSABUFARRAY:I
5: invokestatic sun.nio.ch.IOUtil.load:()V
6: invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.initIDs:()V
7: return
LocalVariableTable:
Start End Slot Name Signature
private static int dependsArch(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.addressSize:I
iconst_4
if_icmpne 1
iload 0
goto 2
StackMap locals:
StackMap stack:
1: iload 1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 value32 I
0 3 1 value64 I
MethodParameters:
Name Flags
value32
value64
void <init>(sun.nio.ch.Iocp, boolean);
descriptor: (Lsun/nio/ch/Iocp;Z)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial sun.nio.ch.AsynchronousSocketChannelImpl.<init>:(Lsun/nio/ch/AsynchronousChannelGroupImpl;)V
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
i2l
lstore 3
start local 3 2: iconst_0
istore 5
start local 5 3: aload 1
aload 0
lload 3
invokevirtual sun.nio.ch.Iocp.associate:(Lsun/nio/ch/Iocp$OverlappedChannel;J)I
istore 5
4: goto 12
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl sun.nio.ch.Iocp int long int
StackMap stack: java.nio.channels.ShutdownChannelGroupException
5: astore 6
start local 6 6: iload 2
ifeq 12
7: lload 3
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.closesocket0:(J)V
8: aload 6
athrow
end local 6 9: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 10: lload 3
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.closesocket0:(J)V
11: aload 6
athrow
end local 6 12: StackMap locals:
StackMap stack:
aload 0
lload 3
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.handle:J
13: aload 0
aload 1
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.iocp:Lsun/nio/ch/Iocp;
14: aload 0
iload 5
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.completionKey:I
15: aload 0
new sun.nio.ch.PendingIoCache
dup
invokespecial sun.nio.ch.PendingIoCache.<init>:()V
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
16: aload 0
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.SIZEOF_WSABUFARRAY:I
i2l
invokevirtual sun.misc.Unsafe.allocateMemory:(J)J
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.readBufferArray:J
17: aload 0
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.SIZEOF_WSABUFARRAY:I
i2l
invokevirtual sun.misc.Unsafe.allocateMemory:(J)J
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.writeBufferArray:J
18: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 19 1 iocp Lsun/nio/ch/Iocp;
0 19 2 failIfGroupShutdown Z
2 19 3 h J
3 19 5 key I
6 9 6 x Ljava/nio/channels/ShutdownChannelGroupException;
10 12 6 x Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.nio.channels.ShutdownChannelGroupException
3 4 9 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
iocp
failIfGroupShutdown
void <init>(sun.nio.ch.Iocp);
descriptor: (Lsun/nio/ch/Iocp;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl.<init>:(Lsun/nio/ch/Iocp;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 2 1 iocp Lsun/nio/ch/Iocp;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
iocp
public sun.nio.ch.AsynchronousChannelGroupImpl group();
descriptor: ()Lsun/nio/ch/AsynchronousChannelGroupImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.iocp:Lsun/nio/ch/Iocp;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
public <V, A> sun.nio.ch.PendingFuture<V, A> getByOverlapped(long);
descriptor: (J)Lsun/nio/ch/PendingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
lload 1
invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 1 1 overlapped J
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(J)Lsun/nio/ch/PendingFuture<TV;TA;>;
MethodParameters:
Name Flags
overlapped
long handle();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.handle:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
void setConnected(java.net.InetSocketAddress, java.net.InetSocketAddress);
descriptor: (Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
iconst_2
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.state:I
2: aload 0
aload 1
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
3: aload 0
aload 2
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
4: aload 3
monitorexit
5: goto 8
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl java.net.InetSocketAddress java.net.InetSocketAddress java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 9 1 localAddress Ljava/net/InetSocketAddress;
0 9 2 remoteAddress Ljava/net/InetSocketAddress;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
localAddress
remoteAddress
void implClose();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.handle:J
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.closesocket0:(J)V
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
invokevirtual sun.nio.ch.PendingIoCache.close:()V
2: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.readBufferArray:J
invokevirtual sun.misc.Unsafe.freeMemory:(J)V
3: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.writeBufferArray:J
invokevirtual sun.misc.Unsafe.freeMemory:(J)V
4: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.completionKey:I
ifeq 6
5: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.iocp:Lsun/nio/ch/Iocp;
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.completionKey:I
invokevirtual sun.nio.ch.Iocp.disassociate:(I)V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
Exceptions:
throws java.io.IOException
public void onCancel(sun.nio.ch.PendingFuture<?, ?>);
descriptor: (Lsun/nio/ch/PendingFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual sun.nio.ch.PendingFuture.getContext:()Ljava/lang/Object;
instanceof sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask
ifeq 2
1: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.killConnect:()V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.nio.ch.PendingFuture.getContext:()Ljava/lang/Object;
instanceof sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask
ifeq 4
3: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.killReading:()V
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.nio.ch.PendingFuture.getContext:()Ljava/lang/Object;
instanceof sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask
ifeq 6
5: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.killWriting:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 7 1 task Lsun/nio/ch/PendingFuture<**>;
Signature: (Lsun/nio/ch/PendingFuture<**>;)V
MethodParameters:
Name Flags
task
private void doPrivilegedBind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: new sun.nio.ch.WindowsAsynchronousSocketChannelImpl$1
dup
aload 0
aload 1
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl$1.<init>:(Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;Ljava/net/SocketAddress;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
pop
1: goto 4
StackMap locals:
StackMap stack: java.security.PrivilegedActionException
2: astore 2
start local 2 3: aload 2
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
checkcast java.io.IOException
athrow
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 5 1 sa Ljava/net/SocketAddress;
3 4 2 e Ljava/security/PrivilegedActionException;
Exception table:
from to target type
0 1 2 Class java.security.PrivilegedActionException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sa final
<A> java.util.concurrent.Future<java.lang.Void> implConnect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
descriptor: (Ljava/net/SocketAddress;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
flags: (0x0000)
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.isOpen:()Z
ifne 6
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
astore 4
start local 4 2: aload 3
ifnonnull 4
3: aload 4
invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
4: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 3
aload 2
aconst_null
aload 4
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
5: aconst_null
areturn
end local 4 6: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 4
start local 4 7: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 8: aload 5
ifnull 10
9: aload 5
aload 4
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 4
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
10: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aconst_null
astore 6
start local 6 11: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
12: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.state:I
iconst_2
if_icmpne 14
13: new java.nio.channels.AlreadyConnectedException
dup
invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
athrow
14: StackMap locals: java.io.IOException java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.state:I
iconst_1
if_icmpne 16
15: new java.nio.channels.ConnectionPendingException
dup
invokespecial java.nio.channels.ConnectionPendingException.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 25
17: new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
astore 8
start local 8 18: aload 5
ifnonnull 21
19: aload 0
aload 8
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.bind:(Ljava/net/SocketAddress;)Ljava/nio/channels/AsynchronousSocketChannel;
pop
20: goto 25
21: StackMap locals: java.net.SocketAddress
StackMap stack:
aload 0
aload 8
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.doPrivilegedBind:(Ljava/net/SocketAddress;)V
end local 8 22: goto 25
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl java.net.SocketAddress java.lang.Object java.nio.channels.CompletionHandler java.net.InetSocketAddress java.lang.SecurityManager java.io.IOException java.lang.Object
StackMap stack: java.io.IOException
23: astore 8
start local 8 24: aload 8
astore 6
end local 8 25: StackMap locals:
StackMap stack:
aload 6
ifnonnull 27
26: aload 0
iconst_1
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.state:I
27: StackMap locals:
StackMap stack:
aload 7
monitorexit
28: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 7
monitorexit
30: athrow
31: StackMap locals:
StackMap stack:
aload 6
ifnull 39
32: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.close:()V
33: goto 35
StackMap locals:
StackMap stack: java.io.IOException
34: pop
35: StackMap locals:
StackMap stack:
aload 3
ifnonnull 37
36: aload 6
invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
37: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 2
aconst_null
aload 6
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
38: aconst_null
areturn
39: StackMap locals:
StackMap stack:
new sun.nio.ch.PendingFuture
dup
aload 0
aload 3
aload 2
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
40: astore 7
start local 7 41: new sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask
dup
aload 0
aload 4
aload 7
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask.<init>:(Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;Ljava/net/InetSocketAddress;Lsun/nio/ch/PendingFuture;)V
astore 8
start local 8 42: aload 7
aload 8
invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
43: invokestatic sun.nio.ch.Iocp.supportsThreadAgnosticIo:()Z
ifeq 46
44: aload 8
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask.run:()V
45: goto 47
46: StackMap locals: sun.nio.ch.PendingFuture sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask
StackMap stack:
aload 0
aload 8
invokestatic sun.nio.ch.Invoker.invokeOnThreadInThreadPool:(Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
47: StackMap locals:
StackMap stack:
aload 7
areturn
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 48 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 48 1 remote Ljava/net/SocketAddress;
0 48 2 attachment TA;
0 48 3 handler Ljava/nio/channels/CompletionHandler<Ljava/lang/Void;-TA;>;
2 6 4 exc Ljava/lang/Throwable;
7 48 4 isa Ljava/net/InetSocketAddress;
8 48 5 sm Ljava/lang/SecurityManager;
11 48 6 bindException Ljava/io/IOException;
18 22 8 any Ljava/net/SocketAddress;
24 25 8 x Ljava/io/IOException;
41 48 7 result Lsun/nio/ch/PendingFuture<Ljava/lang/Void;TA;>;
42 48 8 task Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ConnectTask<TA;>;
Exception table:
from to target type
17 22 23 Class java.io.IOException
12 28 29 any
29 30 29 any
32 33 34 Class java.io.IOException
Signature: <A:Ljava/lang/Object;>(Ljava/net/SocketAddress;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Void;-TA;>;)Ljava/util/concurrent/Future<Ljava/lang/Void;>;
MethodParameters:
Name Flags
remote
attachment
handler
<V extends java.lang.Number, A> java.util.concurrent.Future<V> implRead(boolean, java.nio.ByteBuffer, java.nio.ByteBuffer[], long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<V, ? super A>);
descriptor: (ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
flags: (0x0000)
Code:
stack=6, locals=13, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 start local 7 start local 8 0: new sun.nio.ch.PendingFuture
dup
aload 0
aload 8
aload 7
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
1: astore 9
start local 9 2: iload 1
ifeq 5
3: aload 3
astore 10
start local 10 4: goto 7
end local 10 5: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
iconst_1
anewarray java.nio.ByteBuffer
astore 10
start local 10 6: aload 10
iconst_0
aload 2
aastore
7: StackMap locals: java.nio.ByteBuffer[]
StackMap stack:
new sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask
dup
aload 0
aload 10
iload 1
aload 9
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.<init>:(Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;[Ljava/nio/ByteBuffer;ZLsun/nio/ch/PendingFuture;)V
8: astore 11
start local 11 9: aload 9
aload 11
invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
10: lload 4
lconst_0
lcmp
ifle 15
11: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.iocp:Lsun/nio/ch/Iocp;
new sun.nio.ch.WindowsAsynchronousSocketChannelImpl$2
dup
aload 0
aload 11
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl$2.<init>:(Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask;)V
12: lload 4
aload 6
13: invokevirtual sun.nio.ch.Iocp.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;
astore 12
start local 12 14: aload 9
aload 12
invokevirtual sun.nio.ch.PendingFuture.setTimeoutTask:(Ljava/util/concurrent/Future;)V
end local 12 15: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask
StackMap stack:
invokestatic sun.nio.ch.Iocp.supportsThreadAgnosticIo:()Z
ifeq 18
16: aload 11
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.run:()V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
aload 11
invokestatic sun.nio.ch.Invoker.invokeOnThreadInThreadPool:(Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
19: StackMap locals:
StackMap stack:
aload 9
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 20 1 isScatteringRead Z
0 20 2 dst Ljava/nio/ByteBuffer;
0 20 3 dsts [Ljava/nio/ByteBuffer;
0 20 4 timeout J
0 20 6 unit Ljava/util/concurrent/TimeUnit;
0 20 7 attachment TA;
0 20 8 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
2 20 9 result Lsun/nio/ch/PendingFuture<TV;TA;>;
4 5 10 bufs [Ljava/nio/ByteBuffer;
6 20 10 bufs [Ljava/nio/ByteBuffer;
9 20 11 readTask Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
14 15 12 timeoutTask Ljava/util/concurrent/Future<*>;
Signature: <V:Ljava/lang/Number;A:Ljava/lang/Object;>(ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<TV;-TA;>;)Ljava/util/concurrent/Future<TV;>;
MethodParameters:
Name Flags
isScatteringRead
dst
dsts
timeout
unit
attachment
handler
<V extends java.lang.Number, A> java.util.concurrent.Future<V> implWrite(boolean, java.nio.ByteBuffer, java.nio.ByteBuffer[], long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<V, ? super A>);
descriptor: (ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
flags: (0x0000)
Code:
stack=6, locals=13, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 start local 7 start local 8 0: new sun.nio.ch.PendingFuture
dup
aload 0
aload 8
aload 7
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
1: astore 9
start local 9 2: iload 1
ifeq 5
3: aload 3
astore 10
start local 10 4: goto 7
end local 10 5: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
iconst_1
anewarray java.nio.ByteBuffer
astore 10
start local 10 6: aload 10
iconst_0
aload 2
aastore
7: StackMap locals: java.nio.ByteBuffer[]
StackMap stack:
new sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask
dup
aload 0
aload 10
iload 1
aload 9
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.<init>:(Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;[Ljava/nio/ByteBuffer;ZLsun/nio/ch/PendingFuture;)V
8: astore 11
start local 11 9: aload 9
aload 11
invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
10: lload 4
lconst_0
lcmp
ifle 15
11: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.iocp:Lsun/nio/ch/Iocp;
new sun.nio.ch.WindowsAsynchronousSocketChannelImpl$3
dup
aload 0
aload 11
invokespecial sun.nio.ch.WindowsAsynchronousSocketChannelImpl$3.<init>:(Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$WriteTask;)V
12: lload 4
aload 6
13: invokevirtual sun.nio.ch.Iocp.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;
astore 12
start local 12 14: aload 9
aload 12
invokevirtual sun.nio.ch.PendingFuture.setTimeoutTask:(Ljava/util/concurrent/Future;)V
end local 12 15: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask
StackMap stack:
invokestatic sun.nio.ch.Iocp.supportsThreadAgnosticIo:()Z
ifeq 18
16: aload 11
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.run:()V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
aload 11
invokestatic sun.nio.ch.Invoker.invokeOnThreadInThreadPool:(Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
19: StackMap locals:
StackMap stack:
aload 9
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
0 20 1 gatheringWrite Z
0 20 2 src Ljava/nio/ByteBuffer;
0 20 3 srcs [Ljava/nio/ByteBuffer;
0 20 4 timeout J
0 20 6 unit Ljava/util/concurrent/TimeUnit;
0 20 7 attachment TA;
0 20 8 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
2 20 9 result Lsun/nio/ch/PendingFuture<TV;TA;>;
4 5 10 bufs [Ljava/nio/ByteBuffer;
6 20 10 bufs [Ljava/nio/ByteBuffer;
9 20 11 writeTask Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$WriteTask<TV;TA;>;
14 15 12 timeoutTask Ljava/util/concurrent/Future<*>;
Signature: <V:Ljava/lang/Number;A:Ljava/lang/Object;>(ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<TV;-TA;>;)Ljava/util/concurrent/Future<TV;>;
MethodParameters:
Name Flags
gatheringWrite
src
srcs
timeout
unit
attachment
handler
private static native void initIDs();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private static native int connect0(long, boolean, java.net.InetAddress, int, long);
descriptor: (JZLjava/net/InetAddress;IJ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
preferIPv6
remote
remotePort
overlapped
private static native void updateConnectContext(long);
descriptor: (J)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
private static native int read0(long, int, long, long);
descriptor: (JIJJ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
count
addres
overlapped
private static native int write0(long, int, long, long);
descriptor: (JIJJ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
count
address
overlapped
private static native void shutdown0(long, int);
descriptor: (JI)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
how
private static native void closesocket0(long);
descriptor: (J)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
}
SourceFile: "WindowsAsynchronousSocketChannelImpl.java"
NestMembers:
sun.nio.ch.WindowsAsynchronousSocketChannelImpl$1 sun.nio.ch.WindowsAsynchronousSocketChannelImpl$2 sun.nio.ch.WindowsAsynchronousSocketChannelImpl$3 sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask
InnerClasses:
abstract OverlappedChannel = sun.nio.ch.Iocp$OverlappedChannel of sun.nio.ch.Iocp
sun.nio.ch.WindowsAsynchronousSocketChannelImpl$1
sun.nio.ch.WindowsAsynchronousSocketChannelImpl$2
sun.nio.ch.WindowsAsynchronousSocketChannelImpl$3
private ConnectTask = sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ConnectTask of sun.nio.ch.WindowsAsynchronousSocketChannelImpl
private ReadTask = sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask of sun.nio.ch.WindowsAsynchronousSocketChannelImpl
private WriteTask = sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask of sun.nio.ch.WindowsAsynchronousSocketChannelImpl