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 static final sun.misc.Unsafe unsafe;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static int addressSize;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  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 static final long SIZEOF_FD_SET;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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=2, locals=0, args_size=0
         0: .line 52
            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 53
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
            putstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Lsun/misc/Unsafe;
         4: .line 54
            getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Lsun/misc/Unsafe;
            invokevirtual sun.misc.Unsafe.addressSize:()I
            putstatic sun.nio.ch.WindowsSelectorImpl.addressSize:I
         5: .line 70
            sipush 4100
         6: .line 71
            sipush 8200
         7: .line 69
            invokestatic sun.nio.ch.WindowsSelectorImpl.dependsArch:(II)I
            i2l
            putstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
         8: .line 639
            invokestatic sun.nio.ch.IOUtil.load:()V
         9: .line 640
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int dependsArch(int, int);
    descriptor: (II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int value32
        start local 1 // int value64
         0: .line 57
            getstatic sun.nio.ch.WindowsSelectorImpl.addressSize:I
            iconst_4
            if_icmpne 1
            iload 0 /* value32 */
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* value64 */
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // int value64
        end local 0 // int value32
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  value32  I
            0    3     1  value64  I
    MethodParameters:
         Name  Flags
      value32  
      value64  

  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 147
            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 154
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnonnull 2
         1: .line 155
            new java.nio.channels.ClosedSelectorException
            dup
            invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
            athrow
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timeout */
            putfield sun.nio.ch.WindowsSelectorImpl.timeout:J
         3: .line 157
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
         4: .line 158
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifeq 7
         5: .line 159
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
         6: .line 160
            iconst_0
            ireturn
         7: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.adjustThreadsCount:()V
         8: .line 165
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.reset:()V
         9: .line 168
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        10: .line 172
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.begin:()V
        11: .line 174
            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 175
            goto 15
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 3 /* e */
        start local 3 // java.io.IOException e
        14: .line 176
            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 179
      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 180
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.waitForHelperThreads:()V
        17: .line 181
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
        19: .line 182
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
        20: .line 183
            aload 4
            athrow
        21: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.end:()V
        22: .line 185
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.finishLock:Lsun/nio/ch/WindowsSelectorImpl$FinishLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FinishLock.checkForException:()V
        23: .line 186
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processDeregisterQueue:()V
        24: .line 187
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.updateSelectedKeys:()I
            istore 3 /* updated */
        start local 3 // int updated
        25: .line 189
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket:()V
        26: .line 190
            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 471
            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 473
            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 474
      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 475
            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 476
            aload 2 /* newThread */
            iconst_1
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.setDaemon:(Z)V
         6: .line 477
            aload 2 /* newThread */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.start:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread newThread
         7: .line 473
            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 479
            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 481
            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 482
      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 481
            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 484
      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 488
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.wakeupSinkFd:I
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket0:(I)V
         1: .line 489
            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 494
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 495
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 496
            aload 1
            monitorexit
         3: return
         4: .line 497
      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 498
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         6: .line 494
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 500
      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 517
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
            lconst_1
            ladd
            putfield sun.nio.ch.WindowsSelectorImpl.updateCount:J
         1: .line 518
            iconst_0
            istore 1 /* numKeysUpdated */
        start local 1 // int numKeysUpdated
         2: .line 519
            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 520
            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 521
            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 520
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 523
            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 527
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 528
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            ifnull 30
         2: .line 529
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnull 30
         3: .line 531
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 532
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         5: .line 531
            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 534
      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 535
            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 536
            iconst_1
            istore 2 /* i */
        start local 2 // int i
        12: goto 19
        13: .line 537
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            sipush 1024
            irem
            ifeq 18
        14: .line 538
            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 539
            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 540
            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 541
            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 536
      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 544
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            invokevirtual sun.nio.ch.PollArrayWrapper.free:()V
        21: .line 545
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
        22: .line 546
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
        23: .line 547
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
        24: .line 549
            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 550
            aload 2 /* t */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SelectThread.makeZombie:()V
        end local 2 // sun.nio.ch.WindowsSelectorImpl$SelectThread t
        27: .line 549
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        28: .line 551
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.startLock:Lsun/nio/ch/WindowsSelectorImpl$StartLock;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$StartLock.startThreads:()V
        29: .line 552
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.subSelector:Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.freeFDSetBuffer:()V
        30: .line 527
      StackMap locals: sun.nio.ch.WindowsSelectorImpl java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 1
            monitorexit
        33: athrow
        34: .line 556
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   35     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    31      32  any
          32    33      32  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 567
            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 581
            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 588
            aload 1 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.getIndex:()I
            istore 2 /* i */
        start local 2 // int i
         1: .line 589
            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 590
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 591
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            if_icmpeq 10
         4: .line 593
            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 594
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.channelArray:[Lsun/nio/ch/SelectionKeyImpl;
            iload 2 /* i */
            aload 4 /* endChannel */
            aastore
         6: .line 595
            aload 4 /* endChannel */
            iload 2 /* i */
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
         7: .line 596
            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 597
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            iload 2 /* i */
         9: .line 596
            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 599
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* ski */
            iconst_m1
            invokevirtual sun.nio.ch.SelectionKeyImpl.setIndex:(I)V
        11: .line 590
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 601
      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 602
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        17: .line 603
            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 604
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
        19: .line 605
            aload 0 /* this */
            dup
            getfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
            iconst_1
            isub
            putfield sun.nio.ch.WindowsSelectorImpl.threadsCount:I
        20: .line 607
      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 608
            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 609
            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 610
            aload 0 /* this */
            aload 1 /* ski */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.deregister:(Ljava/nio/channels/spi/AbstractSelectionKey;)V
        24: .line 611
            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 612
            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 613
            aload 3 /* selch */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.kill:()V
        27: .line 614
      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 617
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.closeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 618
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            ifnonnull 3
         2: .line 619
            new java.nio.channels.ClosedSelectorException
            dup
            invokespecial java.nio.channels.ClosedSelectorException.<init>:()V
            athrow
         3: .line 621
      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 622
            iload 4 /* index */
            iconst_m1
            if_icmpne 6
         5: .line 623
            new java.nio.channels.CancelledKeyException
            dup
            invokespecial java.nio.channels.CancelledKeyException.<init>:()V
            athrow
         6: .line 624
      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 617
            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 626
      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 629
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 630
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
            ifne 4
         2: .line 631
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.setWakeupSocket:()V
         3: .line 632
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         4: .line 629
      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 635
      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