final class sun.nio.ch.WindowsSelectorImpl extends sun.nio.ch.SelectorImpl
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.nio.ch.WindowsSelectorImpl
super_class: sun.nio.ch.SelectorImpl
{
private final int INIT_CAP;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 8
private static final int MAX_SELECTABLE_FDS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private sun.nio.ch.SelectionKeyImpl[] channelArray;
descriptor: [Lsun/nio/ch/SelectionKeyImpl;
flags: (0x0002) ACC_PRIVATE
private sun.nio.ch.PollArrayWrapper pollWrapper;
descriptor: Lsun/nio/ch/PollArrayWrapper;
flags: (0x0002) ACC_PRIVATE
private int totalChannels;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int threadsCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.List<java.lang.Thread> threads;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Thread;>;
private final java.nio.channels.Pipe wakeupPipe;
descriptor: Ljava/nio/channels/Pipe;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int wakeupSourceFd;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int wakeupSinkFd;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.WindowsSelectorImpl$FdMap fdMap;
descriptor: Lsun/nio/ch/WindowsSelectorImpl$FdMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.WindowsSelectorImpl$SubSelector subSelector;
descriptor: Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long timeout;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object interruptLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean interruptTriggered;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final sun.nio.ch.WindowsSelectorImpl$StartLock startLock;
descriptor: Lsun/nio/ch/WindowsSelectorImpl$StartLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.WindowsSelectorImpl$FinishLock finishLock;
descriptor: Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long updateCount;
descriptor: J
flags: (0x0002) ACC_PRIVATE
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=1, locals=0, args_size=0
0: ldc Lsun/nio/ch/WindowsSelectorImpl;
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 sun.nio.ch.WindowsSelectorImpl.$assertionsDisabled:Z
3: invokestatic sun.nio.ch.IOUtil.load:()V
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.nio.channels.spi.SelectorProvider);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tsc cannot be resolved or is not a field\n\tThe method addWakeupSocket(int, int) is undefined for the type PollArrayWrapper\n\tThe method addEntry(SelChImpl) in the type PollArrayWrapper is not applicable for the arguments (int, SelectionKeyImpl)\n\tThe method addWakeupSocket(int, int) is undefined for the type PollArrayWrapper\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsSelectorImpl;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
protected int doSelect(long);
descriptor: (J)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
ifnonnull 2
1: new java.nio.channels.ClosedSelectorException
dup
invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield sun.nio.ch.WindowsSelectorImpl.timeout:J
3: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
4: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
ifeq 7
5: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.adjustThreadsCount:()V
8: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.reset:()V
9: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
10: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.begin:()V
11: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.subSelector:Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll:()I
pop
12: goto 15
StackMap locals:
StackMap stack: java.io.IOException
13: astore 3
start local 3 14: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
aload 3
invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.setException:(Ljava/io/IOException;)V
end local 3 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifle 21
16: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.waitForHelperThreads:()V
17: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 4
19: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
20: aload 4
athrow
21: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
22: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.checkForException:()V
23: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
24: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.updateSelectedKeys:()I
istore 3
start local 3 25: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
26: iload 3
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/nio/ch/WindowsSelectorImpl;
0 27 1 timeout J
14 15 3 e Ljava/io/IOException;
25 27 3 updated I
Exception table:
from to target type
11 12 13 Class java.io.IOException
10 18 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
timeout
private void adjustThreadsCount();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmple 10
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 1
start local 1 2: goto 8
3: StackMap locals: int
StackMap stack:
new sun.nio.ch.WindowsSelectorImpl$SelectThread
dup
aload 0
iload 1
invokespecial sun.nio.ch.WindowsSelectorImpl$SelectThread.<init>:(Lsun/nio/ch/WindowsSelectorImpl;I)V
astore 2
start local 2 4: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 2
iconst_1
invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.setDaemon:(Z)V
6: aload 2
invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.start:()V
end local 2 7: iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
if_icmplt 3
end local 1 9: goto 16
StackMap locals:
StackMap stack:
10: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmpge 16
11: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 1
start local 1 12: goto 15
13: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
iload 1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
14: iinc 1 -1
StackMap locals:
StackMap stack:
15: iload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
if_icmpge 13
end local 1 16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/WindowsSelectorImpl;
2 9 1 i I
4 7 2 newThread Lsun/nio/ch/WindowsSelectorImpl$SelectThread;
12 16 1 i I
private void setWakeupSocket();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.wakeupSinkFd:I
invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket0:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsSelectorImpl;
private native void setWakeupSocket0(int);
descriptor: (I)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
wakeupSinkFd
private void resetWakeupSocket();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
ifne 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.wakeupSourceFd:I
invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0:(I)V
5: aload 0
iconst_0
putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
6: aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/WindowsSelectorImpl;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
private native void resetWakeupSocket0(int);
descriptor: (I)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
wakeupSourceFd
private native boolean discardUrgentData(int);
descriptor: (I)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
fd
private int updateSelectedKeys();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
dup
getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
lconst_1
ladd
putfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
1: iconst_0
istore 1
start local 1 2: iload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.subSelector:Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processSelectedKeys:(J)I
iadd
istore 1
3: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
start local 2 4: goto 7
5: StackMap locals: int java.util.Iterator
StackMap stack:
iload 1
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.nio.ch.WindowsSelectorImpl$SelectThread
getfield sun.nio.ch.WindowsSelectorImpl$SelectThread.subSelector:Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
6: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processSelectedKeys:(J)I
iadd
istore 1
7: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/WindowsSelectorImpl;
2 9 1 numKeysUpdated I
4 9 2 it Ljava/util/Iterator;
protected void implClose();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
ifnull 25
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
ifnull 25
2: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
iconst_1
putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
4: aload 1
monitorexit
5: goto 8
StackMap locals: sun.nio.ch.WindowsSelectorImpl java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.wakeupPipe:Ljava/nio/channels/Pipe;
invokevirtual java.nio.channels.Pipe.sink:()Ljava/nio/channels/Pipe$SinkChannel;
invokevirtual java.nio.channels.Pipe$SinkChannel.close:()V
9: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.wakeupPipe:Ljava/nio/channels/Pipe;
invokevirtual java.nio.channels.Pipe.source:()Ljava/nio/channels/Pipe$SourceChannel;
invokevirtual java.nio.channels.Pipe$SourceChannel.close:()V
10: iconst_1
istore 1
start local 1 11: goto 18
12: StackMap locals: int
StackMap stack:
iload 1
sipush 1024
irem
ifeq 17
13: aload 0
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
iload 1
aaload
invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
14: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
iload 1
aaload
invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
astore 2
start local 2 15: aload 2
invokevirtual java.nio.channels.SelectableChannel.isOpen:()Z
ifne 17
aload 2
invokevirtual java.nio.channels.SelectableChannel.isRegistered:()Z
ifne 17
16: aload 2
checkcast sun.nio.ch.SelChImpl
invokeinterface sun.nio.ch.SelChImpl.kill:()V
end local 2 17: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
18: iload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
if_icmplt 12
end local 1 19: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
invokevirtual sun.nio.ch.PollArrayWrapper.free:()V
20: aload 0
aconst_null
putfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
21: aload 0
aconst_null
putfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
22: aload 0
aconst_null
putfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
23: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.clear:()V
24: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
25: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/nio/ch/WindowsSelectorImpl;
11 19 1 i I
15 17 2 selch Ljava/nio/channels/SelectableChannel;
Exception table:
from to target type
3 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
protected void implRegister(sun.nio.ch.SelectionKeyImpl);
descriptor: (Lsun/nio/ch/SelectionKeyImpl;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method addEntry(SelChImpl) in the type PollArrayWrapper is not applicable for the arguments (int, SelectionKeyImpl)\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsSelectorImpl;
MethodParameters:
Name Flags
ski
private void growIfNeeded();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method addWakeupSocket(int, int) is undefined for the type PollArrayWrapper\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsSelectorImpl;
protected void implDereg(sun.nio.ch.SelectionKeyImpl);
descriptor: (Lsun/nio/ch/SelectionKeyImpl;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
istore 2
start local 2 1: getstatic sun.nio.ch.WindowsSelectorImpl.$assertionsDisabled:Z
ifne 2
iload 2
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
iload 2
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
isub
if_icmpeq 9
3: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
isub
aaload
astore 3
start local 3 4: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
iload 2
aload 3
aastore
5: aload 3
iload 2
invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
6: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
isub
7: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
iload 2
8: invokestatic sun.nio.ch.PollArrayWrapper.replaceEntry:(Lsun/nio/ch/PollArrayWrapper;ILsun/nio/ch/PollArrayWrapper;I)V
end local 3 9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
isub
aconst_null
aastore
10: aload 0
dup
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
isub
putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
11: aload 1
iconst_m1
invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
12: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
if_icmpeq 15
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
sipush 1024
irem
iconst_1
if_icmpne 15
13: aload 0
dup
getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
iconst_1
isub
putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
14: aload 0
dup
getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
iconst_1
isub
putfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl.fdMap:Lsun/nio/ch/WindowsSelectorImpl$FdMap;
aload 1
invokevirtual sun.nio.ch.WindowsSelectorImpl$FdMap.remove:(Lsun/nio/ch/SelectionKeyImpl;)Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
pop
16: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.keys:Ljava/util/HashSet;
aload 1
invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
pop
17: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
18: aload 0
aload 1
invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
19: aload 1
invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
astore 3
start local 3 20: aload 3
invokevirtual java.nio.channels.SelectableChannel.isOpen:()Z
ifne 22
aload 3
invokevirtual java.nio.channels.SelectableChannel.isRegistered:()Z
ifne 22
21: aload 3
checkcast sun.nio.ch.SelChImpl
invokeinterface sun.nio.ch.SelChImpl.kill:()V
22: StackMap locals: java.nio.channels.SelectableChannel
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/nio/ch/WindowsSelectorImpl;
0 23 1 ski Lsun/nio/ch/SelectionKeyImpl;
1 23 2 i I
4 9 3 endChannel Lsun/nio/ch/SelectionKeyImpl;
20 23 3 selch Ljava/nio/channels/SelectableChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ski
void putEventOps(sun.nio.ch.SelectionKeyImpl, int);
descriptor: (Lsun/nio/ch/SelectionKeyImpl;I)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
aload 1
invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
iload 2
invokevirtual sun.nio.ch.PollArrayWrapper.putEventOps:(II)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsSelectorImpl;
0 2 1 sk Lsun/nio/ch/SelectionKeyImpl;
0 2 2 ops I
MethodParameters:
Name Flags
sk
ops
public java.nio.channels.Selector wakeup();
descriptor: ()Ljava/nio/channels/Selector;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
ifne 4
2: aload 0
invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket:()V
3: aload 0
iconst_1
putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
4: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/WindowsSelectorImpl;
Exception table:
from to target type
1 5 6 any
6 7 6 any
}
SourceFile: "WindowsSelectorImpl.java"
NestMembers:
sun.nio.ch.WindowsSelectorImpl$FdMap sun.nio.ch.WindowsSelectorImpl$FinishLock sun.nio.ch.WindowsSelectorImpl$MapEntry sun.nio.ch.WindowsSelectorImpl$SelectThread sun.nio.ch.WindowsSelectorImpl$StartLock sun.nio.ch.WindowsSelectorImpl$SubSelector
InnerClasses:
public abstract SinkChannel = java.nio.channels.Pipe$SinkChannel of java.nio.channels.Pipe
public abstract SourceChannel = java.nio.channels.Pipe$SourceChannel of java.nio.channels.Pipe
private final FdMap = sun.nio.ch.WindowsSelectorImpl$FdMap of sun.nio.ch.WindowsSelectorImpl
private final FinishLock = sun.nio.ch.WindowsSelectorImpl$FinishLock of sun.nio.ch.WindowsSelectorImpl
private final MapEntry = sun.nio.ch.WindowsSelectorImpl$MapEntry of sun.nio.ch.WindowsSelectorImpl
private final SelectThread = sun.nio.ch.WindowsSelectorImpl$SelectThread of sun.nio.ch.WindowsSelectorImpl
private final StartLock = sun.nio.ch.WindowsSelectorImpl$StartLock of sun.nio.ch.WindowsSelectorImpl
private final SubSelector = sun.nio.ch.WindowsSelectorImpl$SubSelector of sun.nio.ch.WindowsSelectorImpl