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

  private final long fdsBuffer;
    descriptor: J
    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=6, locals=2, args_size=2
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
         0: .line 348
            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 341
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
         2: .line 342
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
         3: .line 343
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
         4: .line 346
            aload 0 /* this */
            getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Ljdk/internal/misc/Unsafe;
            getstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
            ldc 3
            lmul
            invokevirtual jdk.internal.misc.Unsafe.allocateMemory:(J)J
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
         5: .line 349
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
         6: .line 350
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     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=6, locals=3, args_size=3
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 2 // int threadIndex
         0: .line 352
            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 341
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
         2: .line 342
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
         3: .line 343
            aload 0 /* this */
            sipush 1025
            newarray 10
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
         4: .line 346
            aload 0 /* this */
            getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Ljdk/internal/misc/Unsafe;
            getstatic sun.nio.ch.WindowsSelectorImpl.SIZEOF_FD_SET:J
            ldc 3
            lmul
            invokevirtual jdk.internal.misc.Unsafe.allocateMemory:(J)J
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
         5: .line 353
            aload 0 /* this */
            iload 2 /* threadIndex */
            iconst_1
            iadd
            sipush 1024
            imul
            putfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
         6: .line 354
            return
        end local 2 // int threadIndex
        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     2  threadIndex  I
    MethodParameters:
             Name  Flags
      this$0       final
      threadIndex  

  private int poll();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=1, args_size=1
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
         0: .line 357
            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 358
            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 359
            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
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
         3: .line 357
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0:(JI[I[I[IJJ)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=11, locals=2, args_size=2
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 1 // int index
         0: .line 364
            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 365
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.pollArrayIndex:I
            getstatic sun.nio.ch.PollArrayWrapper.SIZE_POLLFD:S
            imul
            i2l
            ladd
         2: .line 366
            sipush 1024
         3: .line 367
            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 366
            invokestatic java.lang.Math.min:(II)I
         5: .line 368
            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
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
         6: .line 364
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0:(JI[I[I[IJJ)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, long);
    descriptor: (JI[I[I[IJJ)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      pollAddress  
      numfds       
      readFds      
      writeFds     
      exceptFds    
      timeout      
      fdsBuffer    

  private int processSelectedKeys(long, java.util.function.Consumer<java.nio.channels.SelectionKey>);
    descriptor: (JLjava/util/function/Consumer;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 1 // long updateCount
        start local 3 // java.util.function.Consumer action
         0: .line 375
            iconst_0
            istore 4 /* numKeysUpdated */
        start local 4 // int numKeysUpdated
         1: .line 376
            iload 4 /* numKeysUpdated */
            aload 0 /* this */
            lload 1 /* updateCount */
            aload 3 /* action */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.readFds:[I
         2: .line 377
            getstatic sun.nio.ch.Net.POLLIN:S
         3: .line 378
            iconst_0
         4: .line 376
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(JLjava/util/function/Consumer;[IIZ)I
            iadd
            istore 4 /* numKeysUpdated */
         5: .line 379
            iload 4 /* numKeysUpdated */
            aload 0 /* this */
            lload 1 /* updateCount */
            aload 3 /* action */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.writeFds:[I
         6: .line 380
            getstatic sun.nio.ch.Net.POLLCONN:S
         7: .line 381
            getstatic sun.nio.ch.Net.POLLOUT:S
         8: .line 380
            ior
         9: .line 382
            iconst_0
        10: .line 379
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(JLjava/util/function/Consumer;[IIZ)I
            iadd
            istore 4 /* numKeysUpdated */
        11: .line 383
            iload 4 /* numKeysUpdated */
            aload 0 /* this */
            lload 1 /* updateCount */
            aload 3 /* action */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.exceptFds:[I
        12: .line 384
            getstatic sun.nio.ch.Net.POLLIN:S
        13: .line 385
            getstatic sun.nio.ch.Net.POLLCONN:S
        14: .line 384
            ior
        15: .line 386
            getstatic sun.nio.ch.Net.POLLOUT:S
        16: .line 384
            ior
        17: .line 387
            iconst_1
        18: .line 383
            invokevirtual sun.nio.ch.WindowsSelectorImpl$SubSelector.processFDSet:(JLjava/util/function/Consumer;[IIZ)I
            iadd
            istore 4 /* numKeysUpdated */
        19: .line 388
            iload 4 /* numKeysUpdated */
            ireturn
        end local 4 // int numKeysUpdated
        end local 3 // java.util.function.Consumer action
        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
            0   20     3          action  Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;
            1   20     4  numKeysUpdated  I
    Signature: (JLjava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;)I
    MethodParameters:
             Name  Flags
      updateCount  
      action       

  private int processFDSet(long, java.util.function.Consumer<java.nio.channels.SelectionKey>, int[], int, );
    descriptor: (JLjava/util/function/Consumer;[IIZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=6
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
        start local 1 // long updateCount
        start local 3 // java.util.function.Consumer action
        start local 4 // int[] fds
        start local 5 // int rOps
        start local 6 // boolean isExceptFds
         0: .line 402
            iconst_0
            istore 7 /* numKeysUpdated */
        start local 7 // int numKeysUpdated
         1: .line 403
            iconst_1
            istore 8 /* i */
        start local 8 // int i
         2: goto 24
         3: .line 404
      StackMap locals: int int
      StackMap stack:
            aload 4 /* fds */
            iload 8 /* i */
            iaload
            istore 9 /* desc */
        start local 9 // int desc
         4: .line 405
            iload 9 /* 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 406
            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 10
            monitorenter
         6: .line 407
            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 406
            aload 10
            monitorexit
         8: goto 23
      StackMap locals: sun.nio.ch.WindowsSelectorImpl$SubSelector long java.util.function.Consumer int[] int int int int int java.lang.Object
      StackMap stack: java.lang.Throwable
         9: aload 10
            monitorexit
        10: athrow
        11: .line 411
      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 9 /* desc */
            invokevirtual sun.nio.ch.WindowsSelectorImpl$FdMap.get:(I)Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
            astore 10 /* me */
        start local 10 // sun.nio.ch.WindowsSelectorImpl$MapEntry me
        12: .line 414
            aload 10 /* me */
            ifnonnull 14
        13: .line 415
            goto 23
        14: .line 416
      StackMap locals: sun.nio.ch.WindowsSelectorImpl$MapEntry
      StackMap stack:
            aload 10 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.ski:Lsun/nio/ch/SelectionKeyImpl;
            astore 11 /* sk */
        start local 11 // sun.nio.ch.SelectionKeyImpl sk
        15: .line 421
            iload 6 /* isExceptFds */
            ifeq 19
        16: .line 422
            aload 11 /* sk */
            invokevirtual sun.nio.ch.SelectionKeyImpl.channel:()Ljava/nio/channels/SelectableChannel;
            instanceof sun.nio.ch.SocketChannelImpl
            ifeq 19
        17: .line 423
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            iload 9 /* desc */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.discardUrgentData:(I)Z
            ifeq 19
        18: .line 425
            goto 23
        19: .line 428
      StackMap locals: sun.nio.ch.SelectionKeyImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.this$0:Lsun/nio/ch/WindowsSelectorImpl;
            iload 5 /* rOps */
            aload 11 /* sk */
            aload 3 /* action */
            invokevirtual sun.nio.ch.WindowsSelectorImpl.processReadyEvents:(ILsun/nio/ch/SelectionKeyImpl;Ljava/util/function/Consumer;)I
            istore 12 /* updated */
        start local 12 // int updated
        20: .line 429
            iload 12 /* updated */
            ifle 23
            aload 10 /* me */
            getfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
            lload 1 /* updateCount */
            lcmp
            ifeq 23
        21: .line 430
            aload 10 /* me */
            lload 1 /* updateCount */
            putfield sun.nio.ch.WindowsSelectorImpl$MapEntry.updateCount:J
        22: .line 431
            iinc 7 /* numKeysUpdated */ 1
        end local 12 // int updated
        end local 11 // sun.nio.ch.SelectionKeyImpl sk
        end local 10 // sun.nio.ch.WindowsSelectorImpl$MapEntry me
        end local 9 // int desc
        23: .line 403
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 8 /* i */
            aload 4 /* fds */
            iconst_0
            iaload
            if_icmple 3
        end local 8 // int i
        25: .line 434
            iload 7 /* numKeysUpdated */
            ireturn
        end local 7 // int numKeysUpdated
        end local 6 // boolean isExceptFds
        end local 5 // int rOps
        end local 4 // int[] fds
        end local 3 // java.util.function.Consumer action
        end local 1 // long updateCount
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
            0   26     1     updateCount  J
            0   26     3          action  Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;
            0   26     4             fds  [I
            0   26     5            rOps  I
            0   26     6     isExceptFds  Z
            1   26     7  numKeysUpdated  I
            2   25     8               i  I
            4   23     9            desc  I
           12   23    10              me  Lsun/nio/ch/WindowsSelectorImpl$MapEntry;
           15   23    11              sk  Lsun/nio/ch/SelectionKeyImpl;
           20   23    12         updated  I
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
    Signature: (JLjava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;[IIZ)I
    MethodParameters:
             Name  Flags
      updateCount  
      action       
      fds          
      rOps         
      isExceptFds  

  private void freeFDSetBuffer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
         0: .line 438
            getstatic sun.nio.ch.WindowsSelectorImpl.unsafe:Ljdk/internal/misc/Unsafe;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsSelectorImpl$SubSelector.fdsBuffer:J
            invokevirtual jdk.internal.misc.Unsafe.freeMemory:(J)V
         1: .line 439
            return
        end local 0 // sun.nio.ch.WindowsSelectorImpl$SubSelector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/WindowsSelectorImpl$SubSelector;
}
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