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:Ljdk/internal/misc/Unsafe;
getstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
ldc 3
lmul
invokevirtual jdk.internal.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:Ljdk/internal/misc/Unsafe;
getstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
ldc 3
lmul
invokevirtual jdk.internal.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
getstatic sun.nio.ch.PollArrayWrapper.SIZE_POLLFD:S
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, java.util.function.Consumer<java.nio.channels.SelectionKey>);
descriptor: (JLjava/util/function/Consumer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 3 0: iconst_0
istore 4
start local 4 1: iload 4
aload 0
lload 1
aload 3
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:(JLjava/util/function/Consumer;[IIZ)I
iadd
istore 4
5: iload 4
aload 0
lload 1
aload 3
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:(JLjava/util/function/Consumer;[IIZ)I
iadd
istore 4
11: iload 4
aload 0
lload 1
aload 3
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:(JLjava/util/function/Consumer;[IIZ)I
iadd
istore 4
19: iload 4
ireturn
end local 4 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
0 20 3 action Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;
1 20 4 numKeysUpdated I
Signature: (JLjava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;)I
MethodParameters:
Name Flags
updateCount
action
private int processFDSet(long, java.util.function.Consumer<java.nio.channels.SelectionKey>, int[], int, );
descriptor: (JLjava/util/function/Consumer;[IIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=13, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: iconst_0
istore 7
start local 7 1: iconst_1
istore 8
start local 8 2: goto 24
3: StackMap locals: int int
StackMap stack:
aload 4
iload 8
iaload
istore 9
start local 9 4: iload 9
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 10
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 10
monitorexit
8: goto 23
StackMap locals: sun.nio.ch.WindowsSelectorImpl$SubSelector long java.util.function.Consumer int[] int int int int int java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 10
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 9
invokevirtual sun.nio.ch.WindowsSelectorImpl$FdMap.get:(I)Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
astore 10
start local 10 12: aload 10
ifnonnull 14
13: goto 23
14: StackMap locals: sun.nio.ch.WindowsSelectorImpl$MapEntry
StackMap stack:
aload 10
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.ski:Lsun/nio/ch/SelectionKeyImpl;
astore 11
start local 11 15: iload 6
ifeq 19
16: aload 11
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 9
invokevirtual sun.nio.ch.WindowsSelectorImpl.discardUrgentData:(I)Z
ifeq 19
18: goto 23
19: StackMap locals: sun.nio.ch.SelectionKeyImpl
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
iload 5
aload 11
aload 3
invokevirtual sun.nio.ch.WindowsSelectorImpl.processReadyEvents:(ILsun/nio/ch/SelectionKeyImpl;Ljava/util/function/Consumer;)I
istore 12
start local 12 20: iload 12
ifle 23
aload 10
getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
lload 1
lcmp
ifeq 23
21: aload 10
lload 1
putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
22: iinc 7 1
end local 12 end local 11 end local 10 end local 9 23: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
24: iload 8
aload 4
iconst_0
iaload
if_icmple 3
end local 8 25: iload 7
ireturn
end local 7 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 26 0 this Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
0 26 1 updateCount J
0 26 3 action Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;
0 26 4 fds [I
0 26 5 rOps I
0 26 6 isExceptFds Z
1 26 7 numKeysUpdated I
2 25 8 i I
4 23 9 desc I
12 23 10 me Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
15 23 11 sk Lsun/nio/ch/SelectionKeyImpl;
20 23 12 updated I
Exception table:
from to target type
6 8 9 any
9 10 9 any
Signature: (JLjava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;[IIZ)I
MethodParameters:
Name Flags
updateCount
action
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:Ljdk/internal/misc/Unsafe;
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
invokevirtual jdk.internal.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