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<sun.nio.ch.WindowsSelectorImpl$SelectThread> threads;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lsun/nio/ch/WindowsSelectorImpl$SelectThread;>;

  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 java.lang.Object closeLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  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 51
            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 614
            invokestatic sun.nio.ch.IOUtil.load:()V
         4: .line 615
            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 132
            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 139
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnonnull 2
         1: .line 140
            new java.nio.channels.ClosedSelectorException
            dup
            invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
            athrow
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timeout */
            putfield sun.nio.ch.WindowsSelectorImpl.timeout:J
         3: .line 142
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
         4: .line 143
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifeq 7
         5: .line 144
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
         6: .line 145
            iconst_0
            ireturn
         7: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.adjustThreadsCount:()V
         8: .line 150
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.reset:()V
         9: .line 153
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        10: .line 157
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.begin:()V
        11: .line 159
            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 160
            goto 15
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 3 /* e */
        start local 3 // java.io.IOException e
        14: .line 161
            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 164
      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 165
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.waitForHelperThreads:()V
        17: .line 166
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
        19: .line 167
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
        20: .line 168
            aload 4
            athrow
        21: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
        22: .line 170
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.checkForException:()V
        23: .line 171
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
        24: .line 172
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.updateSelectedKeys:()I
            istore 3 /* updated */
        start local 3 // int updated
        25: .line 174
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
        26: .line 175
            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 447
            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 449
            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 450
      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 451
            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 452
            aload 2 /* newThread */
            iconst_1
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.setDaemon:(Z)V
         6: .line 453
            aload 2 /* newThread */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.start:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread newThread
         7: .line 449
            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 455
            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 457
            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 458
      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;
            checkcast sun.nio.ch.WindowsSelectorImpl$SelectThread
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.makeZombie:()V
        14: .line 457
            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 460
      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 464
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.wakeupSinkFd:I
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket0:(I)V
         1: .line 465
            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 470
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 471
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 472
            aload 1
            monitorexit
         3: return
         4: .line 473
      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 474
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         6: .line 470
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 476
      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=4, args_size=1
        start local 0 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 493
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
            lconst_1
            ladd
            putfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
         1: .line 494
            iconst_0
            istore 1 /* numKeysUpdated */
        start local 1 // int numKeysUpdated
         2: .line 495
            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 496
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: sun.nio.ch.WindowsSelectorImpl int top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.nio.ch.WindowsSelectorImpl$SelectThread
            astore 2 /* t */
        start local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread t
         5: .line 497
            iload 1 /* numKeysUpdated */
            aload 2 /* t */
            getfield sun.nio.ch.WindowsSelectorImpl$SelectThread.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 */
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread t
         6: .line 496
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 499
            iload 1 /* numKeysUpdated */
            ireturn
        end local 1 // int numKeysUpdated
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lsun/nio/ch/WindowsSelectorImpl;
            2    8     1  numKeysUpdated  I
            5    6     2               t  Lsun/nio/ch/WindowsSelectorImpl$SelectThread;

  protected void implClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.nio.ch.WindowsSelectorImpl this
         0: .line 503
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 504
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnull 29
         2: .line 505
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnull 29
         3: .line 507
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 508
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         5: .line 507
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: sun.nio.ch.WindowsSelectorImpl java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 510
      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
        10: .line 511
            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
        11: .line 512
            iconst_1
            istore 2 /* i */
        start local 2 // int i
        12: goto 19
        13: .line 513
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            sipush 1024
            irem
            ifeq 18
        14: .line 514
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 2 /* i */
            aaload
            invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
        15: .line 515
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 2 /* i */
            aaload
            invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
            astore 3 /* selch */
        start local 3 // java.nio.channels.SelectableChannel selch
        16: .line 516
            aload 3 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isOpen:()Z
            ifne 18
            aload 3 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isRegistered:()Z
            ifne 18
        17: .line 517
            aload 3 /* selch */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.kill:()V
        end local 3 // java.nio.channels.SelectableChannel selch
        18: .line 512
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 2 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            if_icmplt 13
        end local 2 // int i
        20: .line 520
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            invokevirtual sun.nio.ch.PollArrayWrapper.free:()V
        21: .line 521
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
        22: .line 522
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
        23: .line 523
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
        24: .line 525
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.threads:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 27
      StackMap locals: sun.nio.ch.WindowsSelectorImpl java.lang.Object top java.util.Iterator
      StackMap stack:
        25: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.nio.ch.WindowsSelectorImpl$SelectThread
            astore 2 /* t */
        start local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread t
        26: .line 526
            aload 2 /* t */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.makeZombie:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread t
        27: .line 525
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        28: .line 527
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        29: .line 503
      StackMap locals: sun.nio.ch.WindowsSelectorImpl java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
        30: goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 1
            monitorexit
        32: athrow
        33: .line 531
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   34     0   this  Lsun/nio/ch/WindowsSelectorImpl;
           12   20     2      i  I
           16   18     3  selch  Ljava/nio/channels/SelectableChannel;
           26   27     2      t  Lsun/nio/ch/WindowsSelectorImpl$SelectThread;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
           1    30      31  any
          31    32      31  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 542
            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 556
            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=5, args_size=2
        start local 0 // sun.nio.ch.WindowsSelectorImpl this
        start local 1 // sun.nio.ch.SelectionKeyImpl ski
         0: .line 563
            aload 1 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
            istore 2 /* i */
        start local 2 // int i
         1: .line 564
            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 565
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 566
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            if_icmpeq 10
         4: .line 568
            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 4 /* endChannel */
        start local 4 // sun.nio.ch.SelectionKeyImpl endChannel
         5: .line 569
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 2 /* i */
            aload 4 /* endChannel */
            aastore
         6: .line 570
            aload 4 /* endChannel */
            iload 2 /* i */
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
         7: .line 571
            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
         8: .line 572
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            iload 2 /* i */
         9: .line 571
            invokestatic sun.nio.ch.PollArrayWrapper.replaceEntry:(Lsun/nio/ch/PollArrayWrapper;ILsun/nio/ch/PollArrayWrapper;I)V
        end local 4 // sun.nio.ch.SelectionKeyImpl endChannel
        10: .line 574
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* ski */
            iconst_m1
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
        11: .line 565
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 576
      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
        16: .line 577
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        17: .line 578
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            if_icmpeq 20
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            sipush 1024
            irem
            iconst_1
            if_icmpne 20
        18: .line 579
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        19: .line 580
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
        20: .line 582
      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
        21: .line 583
            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
        22: .line 584
            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
        23: .line 585
            aload 0 /* this */
            aload 1 /* ski */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
        24: .line 586
            aload 1 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
            astore 3 /* selch */
        start local 3 // java.nio.channels.SelectableChannel selch
        25: .line 587
            aload 3 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isOpen:()Z
            ifne 27
            aload 3 /* selch */
            invokevirtual java.nio.channels.SelectableChannel.isRegistered:()Z
            ifne 27
        26: .line 588
            aload 3 /* selch */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.kill:()V
        27: .line 589
      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   28     0        this  Lsun/nio/ch/WindowsSelectorImpl;
            0   28     1         ski  Lsun/nio/ch/SelectionKeyImpl;
            1   28     2           i  I
            5   10     4  endChannel  Lsun/nio/ch/SelectionKeyImpl;
           25   28     3       selch  Ljava/nio/channels/SelectableChannel;
      Exception table:
        from    to  target  type
           3    12      13  any
          13    14      13  any
    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=5, 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 592
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 593
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnonnull 3
         2: .line 594
            new java.nio.channels.ClosedSelectorException
            dup
            invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
            athrow
         3: .line 596
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
            istore 4 /* index */
        start local 4 // int index
         4: .line 597
            iload 4 /* index */
            iconst_m1
            if_icmpne 6
         5: .line 598
            new java.nio.channels.CancelledKeyException
            dup
            invokespecial java.nio.channels.CancelledKeyException.<init>:()V
            athrow
         6: .line 599
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            iload 4 /* index */
            iload 2 /* ops */
            invokevirtual sun.nio.ch.PollArrayWrapper.putEventOps:(II)V
        end local 4 // int index
         7: .line 592
            aload 3
            monitorexit
         8: goto 11
      StackMap locals: sun.nio.ch.WindowsSelectorImpl sun.nio.ch.SelectionKeyImpl int java.lang.Object
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 601
      StackMap locals:
      StackMap stack:
            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   12     0   this  Lsun/nio/ch/WindowsSelectorImpl;
            0   12     1     sk  Lsun/nio/ch/SelectionKeyImpl;
            0   12     2    ops  I
            4    7     4  index  I
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    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 604
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 605
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 606
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket:()V
         3: .line 607
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         4: .line 604
      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 610
      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