final class sun.nio.ch.WindowsSelectorImpl$FinishLock
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.nio.ch.WindowsSelectorImpl$FinishLock
super_class: java.lang.Object
{
private int threadsToFinish;
descriptor: I
flags: (0x0002) ACC_PRIVATE
java.io.IOException exception;
descriptor: Ljava/io/IOException;
flags: (0x0000)
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=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.nio.ch.WindowsSelectorImpl$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield sun.nio.ch.WindowsSelectorImpl$FinishLock.exception:Ljava/io/IOException;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
MethodParameters:
Name Flags
this$0 final
private void reset();
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$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
putfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
private synchronized void threadFinished();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmpne 2
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
invokevirtual sun.nio.ch.WindowsSelectorImpl.wakeup:()Ljava/nio/channels/Selector;
pop
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
iconst_1
isub
putfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
3: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
ifne 5
4: aload 0
invokevirtual java.lang.Object.notify:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
private synchronized void waitForHelperThreads();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmpne 7
1: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
invokevirtual sun.nio.ch.WindowsSelectorImpl.wakeup:()Ljava/nio/channels/Selector;
pop
2: goto 7
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.this$0:Lsun/nio/ch/WindowsSelectorImpl;
getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
invokevirtual java.lang.Object.wait:()V
4: goto 7
StackMap locals:
StackMap stack: java.lang.InterruptedException
5: pop
6: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.threadsToFinish:I
ifne 3
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
private synchronized void setException(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield sun.nio.ch.WindowsSelectorImpl$FinishLock.exception:Ljava/io/IOException;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
0 2 1 e Ljava/io/IOException;
MethodParameters:
Name Flags
e
private void checkForException();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.exception:Ljava/io/IOException;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
new java.lang.StringBuffer
dup
ldc "An exception occured during the execution of select(): \n"
invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
astore 1
start local 1 3: aload 1
aload 0
getfield sun.nio.ch.WindowsSelectorImpl$FinishLock.exception:Ljava/io/IOException;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
pop
4: aload 1
bipush 10
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
5: aload 0
aconst_null
putfield sun.nio.ch.WindowsSelectorImpl$FinishLock.exception:Ljava/io/IOException;
6: new java.io.IOException
dup
aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
3 7 1 message Ljava/lang/StringBuffer;
Exceptions:
throws java.io.IOException
}
SourceFile: "WindowsSelectorImpl.java"
NestHost: sun.nio.ch.WindowsSelectorImpl
InnerClasses:
private final FinishLock = sun.nio.ch.WindowsSelectorImpl$FinishLock of sun.nio.ch.WindowsSelectorImpl