final class sun.nio.ch.WindowsSelectorImpl$SubSelector
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.nio.ch.WindowsSelectorImpl$SubSelector
super_class: java.lang.Object
{
private final int pollArrayIndex;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] readFds;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] writeFds;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] exceptFds;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long fdsBuffer;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.nio.ch.WindowsSelectorImpl this$0;
descriptor: Lsun/nio/ch/WindowsSelectorImpl;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(sun.nio.ch.WindowsSelectorImpl);
descriptor: (Lsun/nio/ch/WindowsSelectorImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 1025
newarray 10
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
2: aload 0
sipush 1025
newarray 10
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
3: aload 0
sipush 1025
newarray 10
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
4: aload 0
getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Lsun/misc/Unsafe;
getstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
ldc 6
lmul
invokevirtual sun.misc.Unsafe.allocateMemory:(J)J
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
5: aload 0
iconst_0
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
MethodParameters:
Name Flags
this$0 final
private void <init>(sun.nio.ch.WindowsSelectorImpl, int);
descriptor: (Lsun/nio/ch/WindowsSelectorImpl;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 1025
newarray 10
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
2: aload 0
sipush 1025
newarray 10
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
3: aload 0
sipush 1025
newarray 10
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
4: aload 0
getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Lsun/misc/Unsafe;
getstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
ldc 6
lmul
invokevirtual sun.misc.Unsafe.allocateMemory:(J)J
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
5: aload 0
iload 2
iconst_1
iadd
sipush 1024
imul
putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
6: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
0 7 2 threadIndex I
MethodParameters:
Name Flags
this$0 final
threadIndex
private int poll();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
getfield sun.nio.ch.PollArrayWrapper.pollArrayAddress:J
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
sipush 1024
invokestatic java.lang.Math.min:(II)I
2: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.timeout:J
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
3: invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0:(JI[I[I[IJJ)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
Exceptions:
throws java.io.IOException
private int poll(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
getfield sun.nio.ch.PollArrayWrapper.pollArrayAddress:J
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
bipush 8
imul
i2l
ladd
2: sipush 1024
3: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iload 1
iconst_1
iadd
sipush 1024
imul
isub
4: invokestatic java.lang.Math.min:(II)I
5: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.timeout:J
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
6: invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0:(JI[I[I[IJJ)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
0 7 1 index I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
index
private native int poll0(long, int, int[], int[], int[], long, long);
descriptor: (JI[I[I[IJJ)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
pollAddress
numfds
readFds
writeFds
exceptFds
timeout
fdsBuffer
private int processSelectedKeys(long);
descriptor: (J)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: iload 3
aload 0
lload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
2: getstatic sun.nio.ch.Net.POLLIN:S
3: iconst_0
4: invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(J[IIZ)I
iadd
istore 3
5: iload 3
aload 0
lload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
6: getstatic sun.nio.ch.Net.POLLCONN:S
7: getstatic sun.nio.ch.Net.POLLOUT:S
8: ior
9: iconst_0
10: invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(J[IIZ)I
iadd
istore 3
11: iload 3
aload 0
lload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
12: getstatic sun.nio.ch.Net.POLLIN:S
13: getstatic sun.nio.ch.Net.POLLCONN:S
14: ior
15: getstatic sun.nio.ch.Net.POLLOUT:S
16: ior
17: iconst_1
18: invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(J[IIZ)I
iadd
istore 3
19: iload 3
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
0 20 1 updateCount J
1 20 3 numKeysUpdated I
MethodParameters:
Name Flags
updateCount
private int processFDSet(long, int[], int, boolean);
descriptor: (J[IIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: iconst_1
istore 7
start local 7 2: goto 46
3: StackMap locals: int int
StackMap stack:
aload 3
iload 7
iaload
istore 8
start local 8 4: iload 8
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.wakeupSourceFd:I
if_icmpne 11
5: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
dup
astore 9
monitorenter
6: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
iconst_1
putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
7: aload 9
monitorexit
8: goto 45
StackMap locals: sun.nio.ch.WindowsSelectorImpl$SubSelector long int[] int int int int int java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 9
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.fdMap:Lsun/nio/ch/WindowsSelectorImpl$FdMap;
iload 8
invokevirtual sun.nio.ch.WindowsSelectorImpl$FdMap.get:(I)Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
astore 9
start local 9 12: aload 9
ifnonnull 14
13: goto 45
14: StackMap locals: sun.nio.ch.WindowsSelectorImpl$MapEntry
StackMap stack:
aload 9
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.ski:Lsun/nio/ch/SelectionKeyImpl;
astore 10
start local 10 15: iload 5
ifeq 19
16: aload 10
invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
instanceof sun.nio.ch.SocketChannelImpl
ifeq 19
17: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
iload 8
invokevirtual sun.nio.ch.WindowsSelectorImpl.discardUrgentData:(I)Z
ifeq 19
18: goto 45
19: StackMap locals: sun.nio.ch.SelectionKeyImpl
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
aload 10
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 32
20: aload 9
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
lload 1
lcmp
ifeq 26
21: aload 10
getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
iload 4
aload 10
invokeinterface sun.nio.ch.SelChImpl.translateAndSetReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
ifeq 30
22: aload 9
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
lload 1
lcmp
ifeq 30
23: aload 9
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
24: iinc 6 1
25: goto 30
26: StackMap locals:
StackMap stack:
aload 10
getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
iload 4
aload 10
invokeinterface sun.nio.ch.SelChImpl.translateAndUpdateReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
ifeq 30
27: aload 9
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
lload 1
lcmp
ifeq 30
28: aload 9
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
29: iinc 6 1
30: StackMap locals:
StackMap stack:
aload 9
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
31: goto 45
32: StackMap locals:
StackMap stack:
aload 9
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
lload 1
lcmp
ifeq 39
33: aload 10
getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
iload 4
aload 10
invokeinterface sun.nio.ch.SelChImpl.translateAndSetReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
pop
34: aload 10
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
aload 10
invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
iand
ifeq 44
35: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
aload 10
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
36: aload 9
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
37: iinc 6 1
38: goto 44
39: StackMap locals:
StackMap stack:
aload 10
getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
iload 4
aload 10
invokeinterface sun.nio.ch.SelChImpl.translateAndUpdateReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
pop
40: aload 10
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
aload 10
invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
iand
ifeq 44
41: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
aload 10
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
42: aload 9
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
43: iinc 6 1
44: StackMap locals:
StackMap stack:
aload 9
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
end local 10 end local 9 end local 8 45: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
46: iload 7
aload 3
iconst_0
iaload
if_icmple 3
end local 7 47: iload 6
ireturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
0 48 1 updateCount J
0 48 3 fds [I
0 48 4 rOps I
0 48 5 isExceptFds Z
1 48 6 numKeysUpdated I
2 47 7 i I
4 45 8 desc I
12 45 9 me Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
15 45 10 sk Lsun/nio/ch/SelectionKeyImpl;
Exception table:
from to target type
6 8 9 any
9 10 9 any
MethodParameters:
Name Flags
updateCount
fds
rOps
isExceptFds
private void freeFDSetBuffer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Lsun/misc/Unsafe;
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
invokevirtual sun.misc.Unsafe.freeMemory:(J)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
}
SourceFile: "WindowsSelectorImpl.java"
NestHost: sun.nio.ch.WindowsSelectorImpl
InnerClasses:
private final FdMap = sun.nio.ch.WindowsSelectorImpl$FdMap of sun.nio.ch.WindowsSelectorImpl
private final MapEntry = sun.nio.ch.WindowsSelectorImpl$MapEntry of sun.nio.ch.WindowsSelectorImpl
private final SubSelector = sun.nio.ch.WindowsSelectorImpl$SubSelector of sun.nio.ch.WindowsSelectorImpl