final class sun.nio.ch.WindowsSelectorImpl$SubSelector
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.nio.ch.WindowsSelectorImpl$SubSelector
  super_class: java.lang.Object
{
  private final int pollArrayIndex;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] readFds;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] writeFds;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] exceptFds;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final sun.nio.ch.WindowsSelectorImpl this$0;
    descriptor: Lsun/nio/ch/WindowsSelectorImpl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(sun.nio.ch.WindowsSelectorImpl);
    descriptor: (Lsun/nio/ch/WindowsSelectorImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
         0: .line 287
            aload 0 /* this */
            aload 1
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 283
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
         2: .line 284
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
         3: .line 285
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
         4: .line 288
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
         5: .line 289
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
    MethodParameters:
        Name  Flags
      this$0  final

  private void <init>(sun.nio.ch.WindowsSelectorImpl, int);
    descriptor: (Lsun/nio/ch/WindowsSelectorImpl;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 2 // int threadIndex
         0: .line 291
            aload 0 /* this */
            aload 1
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 283
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
         2: .line 284
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
         3: .line 285
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
         4: .line 292
            aload 0 /* this */
            iload 2 /* threadIndex */
            iconst_1
            iadd
            sipush 1024
            imul
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
         5: .line 293
            return
        end local 2 // int threadIndex
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            0    6     2  threadIndex  I
    MethodParameters:
             Name  Flags
      this$0       final
      threadIndex  

  private int poll();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
         0: .line 296
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            getfield sun.nio.ch.PollArrayWrapper.pollArrayAddress:J
         1: .line 297
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            sipush 1024
            invokestatic java.lang.Math.min:(II)I
         2: .line 298
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.timeout:J
         3: .line 296
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0:(JI[I[I[IJ)I
            ireturn
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
    Exceptions:
      throws java.io.IOException

  private int poll(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 1 // int index
         0: .line 303
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.pollWrapper:Lsun/nio/ch/PollArrayWrapper;
            getfield sun.nio.ch.PollArrayWrapper.pollArrayAddress:J
         1: .line 304
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
            bipush 8
            imul
            i2l
            ladd
         2: .line 305
            sipush 1024
         3: .line 306
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.totalChannels:I
            iload 1 /* index */
            iconst_1
            iadd
            sipush 1024
            imul
            isub
         4: .line 305
            invokestatic java.lang.Math.min:(II)I
         5: .line 307
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.timeout:J
         6: .line 303
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0:(JI[I[I[IJ)I
            ireturn
        end local 1 // int index
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            0    7     1  index  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  

  private native int poll0(long, int, int[], int[], int[], long);
    descriptor: (JI[I[I[IJ)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      pollAddress  
      numfds       
      readFds      
      writeFds     
      exceptFds    
      timeout      

  private int processSelectedKeys(long);
    descriptor: (J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 1 // long updateCount
         0: .line 314
            iconst_0
            istore 3 /* numKeysUpdated */
        start local 3 // int numKeysUpdated
         1: .line 315
            iload 3 /* numKeysUpdated */
            aload 0 /* this */
            lload 1 /* updateCount */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
         2: .line 316
            getstatic sun.nio.ch.Net.POLLIN:S
         3: .line 317
            iconst_0
         4: .line 315
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(J[IIZ)I
            iadd
            istore 3 /* numKeysUpdated */
         5: .line 318
            iload 3 /* numKeysUpdated */
            aload 0 /* this */
            lload 1 /* updateCount */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
         6: .line 319
            getstatic sun.nio.ch.Net.POLLCONN:S
         7: .line 320
            getstatic sun.nio.ch.Net.POLLOUT:S
         8: .line 319
            ior
         9: .line 321
            iconst_0
        10: .line 318
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(J[IIZ)I
            iadd
            istore 3 /* numKeysUpdated */
        11: .line 322
            iload 3 /* numKeysUpdated */
            aload 0 /* this */
            lload 1 /* updateCount */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
        12: .line 323
            getstatic sun.nio.ch.Net.POLLIN:S
        13: .line 324
            getstatic sun.nio.ch.Net.POLLCONN:S
        14: .line 323
            ior
        15: .line 325
            getstatic sun.nio.ch.Net.POLLOUT:S
        16: .line 323
            ior
        17: .line 326
            iconst_1
        18: .line 322
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(J[IIZ)I
            iadd
            istore 3 /* numKeysUpdated */
        19: .line 327
            iload 3 /* numKeysUpdated */
            ireturn
        end local 3 // int numKeysUpdated
        end local 1 // long updateCount
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            0   20     1     updateCount  J
            1   20     3  numKeysUpdated  I
    MethodParameters:
             Name  Flags
      updateCount  

  private int processFDSet(long, int[], int, boolean);
    descriptor: (J[IIZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=5
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 1 // long updateCount
        start local 3 // int[] fds
        start local 4 // int rOps
        start local 5 // boolean isExceptFds
         0: .line 341
            iconst_0
            istore 6 /* numKeysUpdated */
        start local 6 // int numKeysUpdated
         1: .line 342
            iconst_1
            istore 7 /* i */
        start local 7 // int i
         2: goto 46
         3: .line 343
      StackMap locals: int int
      StackMap stack:
            aload 3 /* fds */
            iload 7 /* i */
            iaload
            istore 8 /* desc */
        start local 8 // int desc
         4: .line 344
            iload 8 /* desc */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.wakeupSourceFd:I
            if_icmpne 11
         5: .line 345
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.interruptLock:Ljava/lang/Object;
            dup
            astore 9
            monitorenter
         6: .line 346
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            iconst_1
            putfield sun.nio.ch.WindowsSelectorImpl.interruptTriggered:Z
         7: .line 345
            aload 9
            monitorexit
         8: goto 45
      StackMap locals: sun.nio.ch.WindowsSelectorImpl$SubSelector long int[] int int int int int java.lang.Object
      StackMap stack: java.lang.Throwable
         9: aload 9
            monitorexit
        10: athrow
        11: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.fdMap:Lsun/nio/ch/WindowsSelectorImpl$FdMap;
            iload 8 /* desc */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FdMap.get:(I)Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
            astore 9 /* me */
        start local 9 // sun.nio.ch.WindowsSelectorImpl$MapEntry me
        12: .line 353
            aload 9 /* me */
            ifnonnull 14
        13: .line 354
            goto 45
        14: .line 355
      StackMap locals: sun.nio.ch.WindowsSelectorImpl$MapEntry
      StackMap stack:
            aload 9 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.ski:Lsun/nio/ch/SelectionKeyImpl;
            astore 10 /* sk */
        start local 10 // sun.nio.ch.SelectionKeyImpl sk
        15: .line 360
            iload 5 /* isExceptFds */
            ifeq 19
        16: .line 361
            aload 10 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
            instanceof sun.nio.ch.SocketChannelImpl
            ifeq 19
        17: .line 362
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            iload 8 /* desc */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.discardUrgentData:(I)Z
            ifeq 19
        18: .line 364
            goto 45
        19: .line 367
      StackMap locals: sun.nio.ch.SelectionKeyImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
            aload 10 /* sk */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 32
        20: .line 368
            aload 9 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
            lload 1 /* updateCount */
            lcmp
            ifeq 26
        21: .line 369
            aload 10 /* sk */
            getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
            iload 4 /* rOps */
            aload 10 /* sk */
            invokeinterface sun.nio.ch.SelChImpl.translateAndSetReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
            ifeq 30
        22: .line 370
            aload 9 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
            lload 1 /* updateCount */
            lcmp
            ifeq 30
        23: .line 371
            aload 9 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
        24: .line 372
            iinc 6 /* numKeysUpdated */ 1
        25: .line 374
            goto 30
        26: .line 375
      StackMap locals:
      StackMap stack:
            aload 10 /* sk */
            getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
            iload 4 /* rOps */
            aload 10 /* sk */
            invokeinterface sun.nio.ch.SelChImpl.translateAndUpdateReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
            ifeq 30
        27: .line 376
            aload 9 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
            lload 1 /* updateCount */
            lcmp
            ifeq 30
        28: .line 377
            aload 9 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
        29: .line 378
            iinc 6 /* numKeysUpdated */ 1
        30: .line 381
      StackMap locals:
      StackMap stack:
            aload 9 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
        31: .line 382
            goto 45
        32: .line 383
      StackMap locals:
      StackMap stack:
            aload 9 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
            lload 1 /* updateCount */
            lcmp
            ifeq 39
        33: .line 384
            aload 10 /* sk */
            getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
            iload 4 /* rOps */
            aload 10 /* sk */
            invokeinterface sun.nio.ch.SelChImpl.translateAndSetReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
            pop
        34: .line 385
            aload 10 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
            aload 10 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
            iand
            ifeq 44
        35: .line 386
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
            aload 10 /* sk */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        36: .line 387
            aload 9 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
        37: .line 388
            iinc 6 /* numKeysUpdated */ 1
        38: .line 390
            goto 44
        39: .line 391
      StackMap locals:
      StackMap stack:
            aload 10 /* sk */
            getfield sun.nio.ch.SelectionKeyImpl.channel:Lsun/nio/ch/SelChImpl;
            iload 4 /* rOps */
            aload 10 /* sk */
            invokeinterface sun.nio.ch.SelChImpl.translateAndUpdateReadyOps:(ILsun/nio/ch/SelectionKeyImpl;)Z
            pop
        40: .line 392
            aload 10 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
            aload 10 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
            iand
            ifeq 44
        41: .line 393
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            getfield sun.nio.ch.WindowsSelectorImpl.selectedKeys:Ljava/util/Set;
            aload 10 /* sk */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        42: .line 394
            aload 9 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
        43: .line 395
            iinc 6 /* numKeysUpdated */ 1
        44: .line 398
      StackMap locals:
      StackMap stack:
            aload 9 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.clearedCount:J
        end local 10 // sun.nio.ch.SelectionKeyImpl sk
        end local 9 // sun.nio.ch.WindowsSelectorImpl$MapEntry me
        end local 8 // int desc
        45: .line 342
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 7 /* i */
            aload 3 /* fds */
            iconst_0
            iaload
            if_icmple 3
        end local 7 // int i
        47: .line 401
            iload 6 /* numKeysUpdated */
            ireturn
        end local 6 // int numKeysUpdated
        end local 5 // boolean isExceptFds
        end local 4 // int rOps
        end local 3 // int[] fds
        end local 1 // long updateCount
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   48     0            this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            0   48     1     updateCount  J
            0   48     3             fds  [I
            0   48     4            rOps  I
            0   48     5     isExceptFds  Z
            1   48     6  numKeysUpdated  I
            2   47     7               i  I
            4   45     8            desc  I
           12   45     9              me  Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
           15   45    10              sk  Lsun/nio/ch/SelectionKeyImpl;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
    MethodParameters:
             Name  Flags
      updateCount  
      fds          
      rOps         
      isExceptFds  
}
SourceFile: "WindowsSelectorImpl.java"
NestHost: sun.nio.ch.WindowsSelectorImpl
InnerClasses:
  private final FdMap = sun.nio.ch.WindowsSelectorImpl$FdMap of sun.nio.ch.WindowsSelectorImpl
  private final MapEntry = sun.nio.ch.WindowsSelectorImpl$MapEntry of sun.nio.ch.WindowsSelectorImpl
  private final SubSelector = sun.nio.ch.WindowsSelectorImpl$SubSelector of sun.nio.ch.WindowsSelectorImpl