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: .line 50
            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: .line 587
            invokestatic sun.nio.ch.IOUtil.load:()V
         4: .line 588
            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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 128
            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 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
        start local 1 // long timeout
         0: .line 135
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnonnull 2
         1: .line 136
            new java.nio.channels.ClosedSelectorException
            dup
            invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
            athrow
         2: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timeout */
            putfield sun.nio.ch.WindowsSelectorImpl.timeout:J
         3: .line 138
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
         4: .line 139
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifeq 7
         5: .line 140
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
         6: .line 141
            iconst_0
            ireturn
         7: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.adjustThreadsCount:()V
         8: .line 146
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.reset:()V
         9: .line 149
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        10: .line 153
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.begin:()V
        11: .line 155
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.subSelector:Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll:()I
            pop
        12: .line 156
            goto 15
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 3 /* e */
        start local 3 // java.io.IOException e
        14: .line 157
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            aload 3 /* e */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.setException:(Ljava/io/IOException;)V
        end local 3 // java.io.IOException e
        15: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 21
        16: .line 161
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.waitForHelperThreads:()V
        17: .line 162
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
        19: .line 163
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
        20: .line 164
            aload 4
            athrow
        21: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
        22: .line 166
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.checkForException:()V
        23: .line 167
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
        24: .line 168
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.updateSelectedKeys:()I
            istore 3 /* updated */
        start local 3 // int updated
        25: .line 170
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
        26: .line 171
            iload 3 /* updated */
            ireturn
        end local 3 // int updated
        end local 1 // long timeout
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 435
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmple 10
         1: .line 437
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 1 /* i */
        start local 1 // int i
         2: goto 8
         3: .line 438
      StackMap locals: int
      StackMap stack:
            new sun.nio.ch.WindowsSelectorImpl$SelectThread
            dup
            aload 0 /* this */
            iload 1 /* i */
            invokespecial sun.nio.ch.WindowsSelectorImpl$SelectThread.<init>:(Lsun/nio/ch/WindowsSelectorImpl;I)V
            astore 2 /* newThread */
        start local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread newThread
         4: .line 439
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            aload 2 /* newThread */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 440
            aload 2 /* newThread */
            iconst_1
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.setDaemon:(Z)V
         6: .line 441
            aload 2 /* newThread */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.start:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread newThread
         7: .line 437
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 1 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            if_icmplt 3
        end local 1 // int i
         9: .line 443
            goto 16
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpge 16
        11: .line 445
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 1 /* i */
        start local 1 // int i
        12: goto 15
        13: .line 446
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        14: .line 445
            iinc 1 /* i */ -1
      StackMap locals:
      StackMap stack:
        15: iload 1 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            if_icmpge 13
        end local 1 // int i
        16: .line 448
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 452
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.wakeupSinkFd:I
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket0:(I)V
         1: .line 453
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 458
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 459
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 460
            aload 1
            monitorexit
         3: return
         4: .line 461
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.wakeupSourceFd:I
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0:(I)V
         5: .line 462
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         6: .line 458
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 464
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 481
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
            lconst_1
            ladd
            putfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
         1: .line 482
            iconst_0
            istore 1 /* numKeysUpdated */
        start local 1 // int numKeysUpdated
         2: .line 483
            iload 1 /* numKeysUpdated */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.subSelector:Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processSelectedKeys:(J)I
            iadd
            istore 1 /* numKeysUpdated */
         3: .line 484
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         4: .line 485
            goto 7
         5: .line 486
      StackMap locals: int java.util.Iterator
      StackMap stack:
            iload 1 /* numKeysUpdated */
            aload 2 /* it */
            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: .line 487
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processSelectedKeys:(J)I
            iadd
            istore 1 /* numKeysUpdated */
         7: .line 485
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 488
            iload 1 /* numKeysUpdated */
            ireturn
        end local 2 // java.util.Iterator it
        end local 1 // int numKeysUpdated
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 492
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnull 25
         1: .line 493
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnull 25
         2: .line 495
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 496
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         4: .line 495
            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: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 499
            aload 0 /* this */
            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: .line 500
            iconst_1
            istore 1 /* i */
        start local 1 // int i
        11: goto 18
        12: .line 501
      StackMap locals: int
      StackMap stack:
            iload 1 /* i */
            sipush 1024
            irem
            ifeq 17
        13: .line 502
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 1 /* i */
            aaload
            invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
        14: .line 503
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 1 /* i */
            aaload
            invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
            astore 2 /* selch */
        start local 2 // java.nio.channels.SelectableChannel selch
        15: .line 504
            aload 2 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isOpen:()Z
            ifne 17
            aload 2 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isRegistered:()Z
            ifne 17
        16: .line 505
            aload 2 /* selch */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.kill:()V
        end local 2 // java.nio.channels.SelectableChannel selch
        17: .line 500
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 1 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            if_icmplt 12
        end local 1 // int i
        19: .line 508
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            invokevirtual sun.nio.ch.PollArrayWrapper.free:()V
        20: .line 509
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
        21: .line 510
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
        22: .line 511
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
        23: .line 512
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        24: .line 515
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        25: .line 518
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 526
            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 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 539
            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 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
        start local 1 // sun.nio.ch.SelectionKeyImpl ski
         0: .line 546
            aload 1 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
            istore 2 /* i */
        start local 2 // int i
         1: .line 547
            getstatic sun.nio.ch.WindowsSelectorImpl.$assertionsDisabled:Z
            ifne 2
            iload 2 /* i */
            ifge 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 548
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            if_icmpeq 9
         3: .line 550
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            aaload
            astore 3 /* endChannel */
        start local 3 // sun.nio.ch.SelectionKeyImpl endChannel
         4: .line 551
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 2 /* i */
            aload 3 /* endChannel */
            aastore
         5: .line 552
            aload 3 /* endChannel */
            iload 2 /* i */
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
         6: .line 553
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
         7: .line 554
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            iload 2 /* i */
         8: .line 553
            invokestatic sun.nio.ch.PollArrayWrapper.replaceEntry:(Lsun/nio/ch/PollArrayWrapper;ILsun/nio/ch/PollArrayWrapper;I)V
        end local 3 // sun.nio.ch.SelectionKeyImpl endChannel
         9: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            aconst_null
            aastore
        10: .line 557
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        11: .line 558
            aload 1 /* ski */
            iconst_m1
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
        12: .line 559
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            if_icmpeq 15
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            sipush 1024
            irem
            iconst_1
            if_icmpne 15
        13: .line 560
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        14: .line 561
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
        15: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.fdMap:Lsun/nio/ch/WindowsSelectorImpl$FdMap;
            aload 1 /* ski */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FdMap.remove:(Lsun/nio/ch/SelectionKeyImpl;)Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
            pop
        16: .line 564
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.keys:Ljava/util/HashSet;
            aload 1 /* ski */
            invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
            pop
        17: .line 565
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
            aload 1 /* ski */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        18: .line 566
            aload 0 /* this */
            aload 1 /* ski */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
        19: .line 567
            aload 1 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
            astore 3 /* selch */
        start local 3 // java.nio.channels.SelectableChannel selch
        20: .line 568
            aload 3 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isOpen:()Z
            ifne 22
            aload 3 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isRegistered:()Z
            ifne 22
        21: .line 569
            aload 3 /* selch */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.kill:()V
        22: .line 570
      StackMap locals: java.nio.channels.SelectableChannel
      StackMap stack:
            return
        end local 3 // java.nio.channels.SelectableChannel selch
        end local 2 // int i
        end local 1 // sun.nio.ch.SelectionKeyImpl ski
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
        start local 1 // sun.nio.ch.SelectionKeyImpl sk
        start local 2 // int ops
         0: .line 573
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            aload 1 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
            iload 2 /* ops */
            invokevirtual sun.nio.ch.PollArrayWrapper.putEventOps:(II)V
         1: .line 574
            return
        end local 2 // int ops
        end local 1 // sun.nio.ch.SelectionKeyImpl sk
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 577
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 578
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 579
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket:()V
         3: .line 580
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         4: .line 577
      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: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      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