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 615
            invokestatic sun.nio.ch.IOUtil.load:()V
         4: .line 616
            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 448
            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 450
            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 451
      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 452
            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 453
            aload 2 /* newThread */
            iconst_1
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.setDaemon:(Z)V
         6: .line 454
            aload 2 /* newThread */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.start:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread newThread
         7: .line 450
            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 456
            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 458
            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 459
      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 458
            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 461
      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 465
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.wakeupSinkFd:I
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket0:(I)V
         1: .line 466
            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 471
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 472
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 473
            aload 1
            monitorexit
         3: return
         4: .line 474
      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 475
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         6: .line 471
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 477
      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 494
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
            lconst_1
            ladd
            putfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
         1: .line 495
            iconst_0
            istore 1 /* numKeysUpdated */
        start local 1 // int numKeysUpdated
         2: .line 496
            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 497
            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 498
            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 497
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 500
            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 504
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 505
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnull 29
         2: .line 506
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnull 29
         3: .line 508
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 509
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         5: .line 508
            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 511
      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 512
            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 513
            iconst_1
            istore 2 /* i */
        start local 2 // int i
        12: goto 19
        13: .line 514
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            sipush 1024
            irem
            ifeq 18
        14: .line 515
            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 516
            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 517
            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 518
            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 513
      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 521
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            invokevirtual sun.nio.ch.PollArrayWrapper.free:()V
        21: .line 522
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
        22: .line 523
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
        23: .line 524
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
        24: .line 526
            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 527
            aload 2 /* t */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.makeZombie:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread t
        27: .line 526
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        28: .line 528
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        29: .line 504
      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 532
      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 543
            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 557
            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 564
            aload 1 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
            istore 2 /* i */
        start local 2 // int i
         1: .line 565
            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 566
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 567
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            if_icmpeq 10
         4: .line 569
            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 570
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 2 /* i */
            aload 4 /* endChannel */
            aastore
         6: .line 571
            aload 4 /* endChannel */
            iload 2 /* i */
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
         7: .line 572
            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 573
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            iload 2 /* i */
         9: .line 572
            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 575
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* ski */
            iconst_m1
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
        11: .line 566
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 577
      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 578
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        17: .line 579
            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 580
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        19: .line 581
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
        20: .line 583
      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 584
            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 585
            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 586
            aload 0 /* this */
            aload 1 /* ski */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
        24: .line 587
            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 588
            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 589
            aload 3 /* selch */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.kill:()V
        27: .line 590
      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   

  public void putEventOps(sun.nio.ch.SelectionKeyImpl, int);
    descriptor: (Lsun/nio/ch/SelectionKeyImpl;I)V
    flags: (0x0001) ACC_PUBLIC
    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 593
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 594
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnonnull 3
         2: .line 595
            new java.nio.channels.ClosedSelectorException
            dup
            invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
            athrow
         3: .line 597
      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 598
            iload 4 /* index */
            iconst_m1
            if_icmpne 6
         5: .line 599
            new java.nio.channels.CancelledKeyException
            dup
            invokespecial java.nio.channels.CancelledKeyException.<init>:()V
            athrow
         6: .line 600
      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 593
            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 602
      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 605
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 606
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 607
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket:()V
         3: .line 608
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         4: .line 605
      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 611
      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