class sun.nio.ch.UnixAsynchronousSocketChannelImpl extends sun.nio.ch.AsynchronousSocketChannelImpl implements sun.nio.ch.Port$PollableChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.ch.UnixAsynchronousSocketChannelImpl
  super_class: sun.nio.ch.AsynchronousSocketChannelImpl
{
  private static final sun.nio.ch.NativeDispatcher nd;
    descriptor: Lsun/nio/ch/NativeDispatcher;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean disableSynchronousRead;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final sun.nio.ch.Port port;
    descriptor: Lsun/nio/ch/Port;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int fdVal;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object updateLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean connectPending;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.CompletionHandler<java.lang.Void, java.lang.Object> connectHandler;
    descriptor: Ljava/nio/channels/CompletionHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/nio/channels/CompletionHandler<Ljava/lang/Void;Ljava/lang/Object;>;

  private java.lang.Object connectAttachment;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private sun.nio.ch.PendingFuture<java.lang.Void, java.lang.Object> connectFuture;
    descriptor: Lsun/nio/ch/PendingFuture;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lsun/nio/ch/PendingFuture<Ljava/lang/Void;Ljava/lang/Object;>;

  private java.net.SocketAddress pendingRemote;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x0002) ACC_PRIVATE

  private boolean readPending;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isScatteringRead;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer readBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer[] readBuffers;
    descriptor: [Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.CompletionHandler<java.lang.Number, java.lang.Object> readHandler;
    descriptor: Ljava/nio/channels/CompletionHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/nio/channels/CompletionHandler<Ljava/lang/Number;Ljava/lang/Object;>;

  private java.lang.Object readAttachment;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private sun.nio.ch.PendingFuture<java.lang.Number, java.lang.Object> readFuture;
    descriptor: Lsun/nio/ch/PendingFuture;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lsun/nio/ch/PendingFuture<Ljava/lang/Number;Ljava/lang/Object;>;

  private java.util.concurrent.Future<?> readTimer;
    descriptor: Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/Future<*>;

  private boolean writePending;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isGatheringWrite;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer writeBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer[] writeBuffers;
    descriptor: [Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.CompletionHandler<java.lang.Number, java.lang.Object> writeHandler;
    descriptor: Ljava/nio/channels/CompletionHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/nio/channels/CompletionHandler<Ljava/lang/Number;Ljava/lang/Object;>;

  private java.lang.Object writeAttachment;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private sun.nio.ch.PendingFuture<java.lang.Number, java.lang.Object> writeFuture;
    descriptor: Lsun/nio/ch/PendingFuture;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lsun/nio/ch/PendingFuture<Ljava/lang/Number;Ljava/lang/Object;>;

  private java.util.concurrent.Future<?> writeTimer;
    descriptor: Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/Future<*>;

  private java.lang.Runnable readTimeoutTask;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable writeTimeoutTask;
    descriptor: Ljava/lang/Runnable;
    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=4, locals=1, args_size=0
         0: .line 42
            ldc Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            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.UnixAsynchronousSocketChannelImpl.$assertionsDisabled:Z
         3: .line 45
            new sun.nio.ch.SocketDispatcher
            dup
            invokespecial sun.nio.ch.SocketDispatcher.<init>:()V
            putstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
         4: .line 51
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.nio.ch.disableSynchronousRead"
            ldc "false"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 50
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 0 /* propValue */
        start local 0 // java.lang.String propValue
         6: .line 52
            aload 0 /* propValue */
            invokevirtual java.lang.String.length:()I
            ifne 8
         7: .line 53
            iconst_1
            goto 9
      StackMap locals: java.lang.String
      StackMap stack:
         8: aload 0 /* propValue */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
         9: .line 52
      StackMap locals:
      StackMap stack: int
            putstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.disableSynchronousRead:Z
        end local 0 // java.lang.String propValue
        10: .line 751
            invokestatic sun.nio.ch.IOUtil.load:()V
        11: .line 752
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            6   10     0  propValue  Ljava/lang/String;

  void <init>(sun.nio.ch.Port);
    descriptor: (Lsun/nio/ch/Port;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // sun.nio.ch.Port port
         0: .line 96
            aload 0 /* this */
            aload 1 /* port */
            invokespecial sun.nio.ch.AsynchronousSocketChannelImpl.<init>:(Lsun/nio/ch/AsynchronousChannelGroupImpl;)V
         1: .line 61
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
         2: .line 437
            aload 0 /* this */
            new sun.nio.ch.UnixAsynchronousSocketChannelImpl$1
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.UnixAsynchronousSocketChannelImpl$1.<init>:(Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;)V
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readTimeoutTask:Ljava/lang/Runnable;
         3: .line 632
            aload 0 /* this */
            new sun.nio.ch.UnixAsynchronousSocketChannelImpl$2
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.UnixAsynchronousSocketChannelImpl$2.<init>:(Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;)V
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeTimeoutTask:Ljava/lang/Runnable;
         4: .line 100
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            iconst_0
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
         5: .line 101
            goto 9
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl sun.nio.ch.Port
      StackMap stack: java.io.IOException
         6: astore 2 /* x */
        start local 2 // java.io.IOException x
         7: .line 102
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
         8: .line 103
            aload 2 /* x */
            athrow
        end local 2 // java.io.IOException x
         9: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* port */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
        10: .line 107
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
        11: .line 110
            aload 1 /* port */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
            aload 0 /* this */
            invokevirtual sun.nio.ch.Port.register:(ILsun/nio/ch/Port$PollableChannel;)V
        12: .line 111
            return
        end local 1 // sun.nio.ch.Port port
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   13     1  port  Lsun/nio/ch/Port;
            7    9     2     x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      port  

  void <init>(sun.nio.ch.Port, java.io.FileDescriptor, java.net.InetSocketAddress);
    descriptor: (Lsun/nio/ch/Port;Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // sun.nio.ch.Port port
        start local 2 // java.io.FileDescriptor fd
        start local 3 // java.net.InetSocketAddress remote
         0: .line 119
            aload 0 /* this */
            aload 1 /* port */
            aload 2 /* fd */
            aload 3 /* remote */
            invokespecial sun.nio.ch.AsynchronousSocketChannelImpl.<init>:(Lsun/nio/ch/AsynchronousChannelGroupImpl;Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)V
         1: .line 61
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
         2: .line 437
            aload 0 /* this */
            new sun.nio.ch.UnixAsynchronousSocketChannelImpl$1
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.UnixAsynchronousSocketChannelImpl$1.<init>:(Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;)V
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readTimeoutTask:Ljava/lang/Runnable;
         3: .line 632
            aload 0 /* this */
            new sun.nio.ch.UnixAsynchronousSocketChannelImpl$2
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.UnixAsynchronousSocketChannelImpl$2.<init>:(Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;)V
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeTimeoutTask:Ljava/lang/Runnable;
         4: .line 121
            aload 0 /* this */
            aload 2 /* fd */
            invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
         5: .line 122
            aload 2 /* fd */
            iconst_0
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
         6: .line 125
            aload 1 /* port */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
            aload 0 /* this */
            invokevirtual sun.nio.ch.Port.register:(ILsun/nio/ch/Port$PollableChannel;)V
         7: .line 126
            goto 10
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl sun.nio.ch.Port java.io.FileDescriptor java.net.InetSocketAddress
      StackMap stack: java.nio.channels.ShutdownChannelGroupException
         8: astore 4 /* x */
        start local 4 // java.nio.channels.ShutdownChannelGroupException x
         9: .line 129
            new java.io.IOException
            dup
            aload 4 /* x */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.nio.channels.ShutdownChannelGroupException x
        10: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* port */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
        11: .line 133
            return
        end local 3 // java.net.InetSocketAddress remote
        end local 2 // java.io.FileDescriptor fd
        end local 1 // sun.nio.ch.Port port
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   12     1    port  Lsun/nio/ch/Port;
            0   12     2      fd  Ljava/io/FileDescriptor;
            0   12     3  remote  Ljava/net/InetSocketAddress;
            9   10     4       x  Ljava/nio/channels/ShutdownChannelGroupException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.nio.channels.ShutdownChannelGroupException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      port    
      fd      
      remote  

  public sun.nio.ch.AsynchronousChannelGroupImpl group();
    descriptor: ()Lsun/nio/ch/AsynchronousChannelGroupImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
         0: .line 137
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            areturn
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;

  private void updateEvents();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
         0: .line 142
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 143
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* events */
        start local 1 // int events
         2: .line 144
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readPending:Z
            ifeq 4
         3: .line 145
            iload 1 /* events */
            getstatic sun.nio.ch.Net.POLLIN:S
            ior
            istore 1 /* events */
         4: .line 146
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectPending:Z
            ifne 5
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writePending:Z
            ifeq 6
         5: .line 147
      StackMap locals:
      StackMap stack:
            iload 1 /* events */
            getstatic sun.nio.ch.Net.POLLOUT:S
            ior
            istore 1 /* events */
         6: .line 148
      StackMap locals:
      StackMap stack:
            iload 1 /* events */
            ifeq 8
         7: .line 149
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
            iload 1 /* events */
            invokevirtual sun.nio.ch.Port.startPoll:(II)V
         8: .line 150
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int events
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            2    9     1  events  I

  private void lockAndUpdateEvents();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
         0: .line 154
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 155
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateEvents:()V
         2: .line 154
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 157
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  private void finish(boolean, boolean, boolean);
    descriptor: (ZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // boolean mayInvokeDirect
        start local 2 // boolean readable
        start local 3 // boolean writable
         0: .line 164
            iconst_0
            istore 4 /* finishRead */
        start local 4 // boolean finishRead
         1: .line 165
            iconst_0
            istore 5 /* finishWrite */
        start local 5 // boolean finishWrite
         2: .line 166
            iconst_0
            istore 6 /* finishConnect */
        start local 6 // boolean finishConnect
         3: .line 169
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 7
            monitorenter
         4: .line 170
            iload 2 /* readable */
            ifeq 7
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readPending:Z
            ifeq 7
         5: .line 171
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readPending:Z
         6: .line 172
            iconst_1
            istore 4 /* finishRead */
         7: .line 174
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int int int int int java.lang.Object
      StackMap stack:
            iload 3 /* writable */
            ifeq 15
         8: .line 175
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writePending:Z
            ifeq 12
         9: .line 176
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writePending:Z
        10: .line 177
            iconst_1
            istore 5 /* finishWrite */
        11: .line 178
            goto 15
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectPending:Z
            ifeq 15
        13: .line 179
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectPending:Z
        14: .line 180
            iconst_1
            istore 6 /* finishConnect */
        15: .line 169
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 7
            monitorexit
        18: athrow
        19: .line 188
      StackMap locals:
      StackMap stack:
            iload 4 /* finishRead */
            ifeq 24
        20: .line 189
            iload 5 /* finishWrite */
            ifeq 22
        21: .line 190
            aload 0 /* this */
            iconst_0
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishWrite:(Z)V
        22: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* mayInvokeDirect */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishRead:(Z)V
        23: .line 192
            return
        24: .line 194
      StackMap locals:
      StackMap stack:
            iload 5 /* finishWrite */
            ifeq 26
        25: .line 195
            aload 0 /* this */
            iload 1 /* mayInvokeDirect */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishWrite:(Z)V
        26: .line 197
      StackMap locals:
      StackMap stack:
            iload 6 /* finishConnect */
            ifeq 28
        27: .line 198
            aload 0 /* this */
            iload 1 /* mayInvokeDirect */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishConnect:(Z)V
        28: .line 200
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean finishConnect
        end local 5 // boolean finishWrite
        end local 4 // boolean finishRead
        end local 3 // boolean writable
        end local 2 // boolean readable
        end local 1 // boolean mayInvokeDirect
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   29     1  mayInvokeDirect  Z
            0   29     2         readable  Z
            0   29     3         writable  Z
            1   29     4       finishRead  Z
            2   29     5      finishWrite  Z
            3   29     6    finishConnect  Z
      Exception table:
        from    to  target  type
           4    16      17  any
          17    18      17  any
    MethodParameters:
                 Name  Flags
      mayInvokeDirect  
      readable         
      writable         

  public void onEvent(int, boolean);
    descriptor: (IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // int events
        start local 2 // boolean mayInvokeDirect
         0: .line 207
            iload 1 /* events */
            getstatic sun.nio.ch.Net.POLLIN:S
            iand
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* readable */
        start local 3 // boolean readable
         3: .line 208
            iload 1 /* events */
            getstatic sun.nio.ch.Net.POLLOUT:S
            iand
            ifle 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* writable */
        start local 4 // boolean writable
         6: .line 209
            iload 1 /* events */
            getstatic sun.nio.ch.Net.POLLERR:S
            getstatic sun.nio.ch.Net.POLLHUP:S
            ior
            iand
            ifle 9
         7: .line 210
            iconst_1
            istore 3 /* readable */
         8: .line 211
            iconst_1
            istore 4 /* writable */
         9: .line 213
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* mayInvokeDirect */
            iload 3 /* readable */
            iload 4 /* writable */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish:(ZZZ)V
        10: .line 214
            return
        end local 4 // boolean writable
        end local 3 // boolean readable
        end local 2 // boolean mayInvokeDirect
        end local 1 // int events
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   11     1           events  I
            0   11     2  mayInvokeDirect  Z
            3   11     3         readable  Z
            6   11     4         writable  Z
    MethodParameters:
                 Name  Flags
      events           
      mayInvokeDirect  

  void implClose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
         0: .line 219
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
            invokevirtual sun.nio.ch.Port.unregister:(I)V
         1: .line 222
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
         2: .line 225
            aload 0 /* this */
            iconst_0
            iconst_1
            iconst_1
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish:(ZZZ)V
         3: .line 226
            return
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
    Exceptions:
      throws java.io.IOException

  public void onCancel(sun.nio.ch.PendingFuture<?, ?>);
    descriptor: (Lsun/nio/ch/PendingFuture;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // sun.nio.ch.PendingFuture task
         0: .line 230
            aload 1 /* task */
            invokevirtual sun.nio.ch.PendingFuture.getContext:()Ljava/lang/Object;
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType.CONNECT:Lsun/nio/ch/UnixAsynchronousSocketChannelImpl$OpType;
            if_acmpne 2
         1: .line 231
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.killConnect:()V
         2: .line 232
      StackMap locals:
      StackMap stack:
            aload 1 /* task */
            invokevirtual sun.nio.ch.PendingFuture.getContext:()Ljava/lang/Object;
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType.READ:Lsun/nio/ch/UnixAsynchronousSocketChannelImpl$OpType;
            if_acmpne 4
         3: .line 233
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.killReading:()V
         4: .line 234
      StackMap locals:
      StackMap stack:
            aload 1 /* task */
            invokevirtual sun.nio.ch.PendingFuture.getContext:()Ljava/lang/Object;
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType.WRITE:Lsun/nio/ch/UnixAsynchronousSocketChannelImpl$OpType;
            if_acmpne 6
         5: .line 235
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.killWriting:()V
         6: .line 236
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.nio.ch.PendingFuture task
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0    7     1  task  Lsun/nio/ch/PendingFuture<**>;
    Signature: (Lsun/nio/ch/PendingFuture<**>;)V
    MethodParameters:
      Name  Flags
      task  

  private void setConnected();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
         0: .line 241
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 242
            aload 0 /* this */
            iconst_2
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.state:I
         2: .line 243
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
         3: .line 244
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.pendingRemote:Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
         4: .line 241
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 246
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Exceptions:
      throws java.io.IOException

  private void finishConnect(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // boolean mayInvokeDirect
         0: .line 249
            aconst_null
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
         1: .line 251
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.begin:()V
         2: .line 252
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fdVal:I
            invokestatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.checkConnect:(I)V
         3: .line 253
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.setConnected:()V
         4: .line 254
            goto 13
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.lang.Throwable
      StackMap stack: java.lang.Throwable
         5: astore 3 /* x */
        start local 3 // java.lang.Throwable x
         6: .line 255
            aload 3 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 8
         7: .line 256
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 3 /* x */
         8: .line 257
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3 /* x */
            astore 2 /* e */
        end local 3 // java.lang.Throwable x
         9: .line 259
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
            goto 14
        10: .line 258
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 259
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        12: .line 260
            aload 4
            athrow
        13: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        14: .line 261
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            ifnull 19
        15: .line 264
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.close:()V
        16: .line 265
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 3 /* suppressed */
        start local 3 // java.lang.Throwable suppressed
        18: .line 266
            aload 2 /* e */
            aload 3 /* suppressed */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable suppressed
        19: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectHandler:Ljava/nio/channels/CompletionHandler;
            astore 3 /* handler */
        start local 3 // java.nio.channels.CompletionHandler handler
        20: .line 272
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectAttachment:Ljava/lang/Object;
            astore 4 /* att */
        start local 4 // java.lang.Object att
        21: .line 273
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectFuture:Lsun/nio/ch/PendingFuture;
            astore 5 /* future */
        start local 5 // sun.nio.ch.PendingFuture future
        22: .line 274
            aload 3 /* handler */
            ifnonnull 25
        23: .line 275
            aload 5 /* future */
            aconst_null
            aload 2 /* e */
            invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        24: .line 276
            goto 29
        25: .line 277
      StackMap locals: java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture
      StackMap stack:
            iload 1 /* mayInvokeDirect */
            ifeq 28
        26: .line 278
            aload 3 /* handler */
            aload 4 /* att */
            aconst_null
            aload 2 /* e */
            invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        27: .line 279
            goto 29
        28: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* handler */
            aload 4 /* att */
            aconst_null
            aload 2 /* e */
            invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        29: .line 283
      StackMap locals:
      StackMap stack:
            return
        end local 5 // sun.nio.ch.PendingFuture future
        end local 4 // java.lang.Object att
        end local 3 // java.nio.channels.CompletionHandler handler
        end local 2 // java.lang.Throwable e
        end local 1 // boolean mayInvokeDirect
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   30     0             this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   30     1  mayInvokeDirect  Z
            1   30     2                e  Ljava/lang/Throwable;
            6    9     3                x  Ljava/lang/Throwable;
           18   19     3       suppressed  Ljava/lang/Throwable;
           20   30     3          handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Void;Ljava/lang/Object;>;
           21   30     4              att  Ljava/lang/Object;
           22   30     5           future  Lsun/nio/ch/PendingFuture<Ljava/lang/Void;Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Throwable
           1     9      10  any
          15    16      17  Class java.lang.Throwable
    MethodParameters:
                 Name  Flags
      mayInvokeDirect  

  <A> java.util.concurrent.Future<java.lang.Void> implConnect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
    descriptor: (Ljava/net/SocketAddress;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0000) 
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // java.net.SocketAddress remote
        start local 2 // java.lang.Object attachment
        start local 3 // java.nio.channels.CompletionHandler handler
         0: .line 291
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.isOpen:()Z
            ifne 6
         1: .line 292
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
         2: .line 293
            aload 3 /* handler */
            ifnonnull 4
         3: .line 294
            aload 4 /* e */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
         4: .line 296
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 3 /* handler */
            aload 2 /* attachment */
            aconst_null
            aload 4 /* e */
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: .line 297
            aconst_null
            areturn
        end local 4 // java.lang.Throwable e
         6: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* remote */
            invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
            astore 4 /* isa */
        start local 4 // java.net.InetSocketAddress isa
         7: .line 304
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 5 /* sm */
        start local 5 // java.lang.SecurityManager sm
         8: .line 305
            aload 5 /* sm */
            ifnull 10
         9: .line 306
            aload 5 /* sm */
            aload 4 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 4 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
        10: .line 310
      StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 7
            monitorenter
        11: .line 311
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.state:I
            iconst_2
            if_icmpne 13
        12: .line 312
            new java.nio.channels.AlreadyConnectedException
            dup
            invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
            athrow
        13: .line 313
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl java.net.SocketAddress java.lang.Object java.nio.channels.CompletionHandler java.net.InetSocketAddress java.lang.SecurityManager top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.state:I
            iconst_1
            if_icmpne 15
        14: .line 314
            new java.nio.channels.ConnectionPendingException
            dup
            invokespecial java.nio.channels.ConnectionPendingException.<init>:()V
            athrow
        15: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.state:I
        16: .line 316
            aload 0 /* this */
            aload 1 /* remote */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.pendingRemote:Ljava/net/SocketAddress;
        17: .line 317
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            ifnonnull 18
            iconst_1
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 6 /* notifyBeforeTcpConnect */
        start local 6 // boolean notifyBeforeTcpConnect
        20: .line 310
            aload 7
            monitorexit
        21: goto 24
        end local 6 // boolean notifyBeforeTcpConnect
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 7
            monitorexit
        23: athrow
        start local 6 // boolean notifyBeforeTcpConnect
        24: .line 320
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl java.net.SocketAddress java.lang.Object java.nio.channels.CompletionHandler java.net.InetSocketAddress java.lang.SecurityManager int
      StackMap stack:
            aconst_null
            astore 7 /* e */
        start local 7 // java.lang.Throwable e
        25: .line 322
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.begin:()V
        26: .line 324
            iload 6 /* notifyBeforeTcpConnect */
            ifeq 28
        27: .line 325
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 4 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            aload 4 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokestatic sun.net.NetHooks.beforeTcpConnect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
        28: .line 326
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 4 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            aload 4 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokestatic sun.nio.ch.Net.connect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
            istore 8 /* n */
        start local 8 // int n
        29: .line 327
            iload 8 /* n */
            bipush -2
            if_icmpne 47
        30: .line 329
            aconst_null
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        31: .line 330
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        32: .line 331
            aload 3 /* handler */
            ifnonnull 36
        33: .line 332
            new sun.nio.ch.PendingFuture
            dup
            aload 0 /* this */
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType.CONNECT:Lsun/nio/ch/UnixAsynchronousSocketChannelImpl$OpType;
            invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/lang/Object;)V
            astore 9 /* result */
        34: .line 333
            aload 0 /* this */
            aload 9 /* result */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectFuture:Lsun/nio/ch/PendingFuture;
        35: .line 334
            goto 38
        36: .line 335
      StackMap locals: int sun.nio.ch.PendingFuture java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 3 /* handler */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectHandler:Ljava/nio/channels/CompletionHandler;
        37: .line 336
            aload 0 /* this */
            aload 2 /* attachment */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectAttachment:Ljava/lang/Object;
        38: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.connectPending:Z
        39: .line 339
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateEvents:()V
        40: .line 330
            aload 10
            monitorexit
        41: goto 44
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: aload 10
            monitorexit
        43: athrow
        44: .line 341
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            astore 12
        45: .line 349
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        46: .line 341
            aload 12
            areturn
        end local 9 // sun.nio.ch.PendingFuture result
        47: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.setConnected:()V
        end local 8 // int n
        48: .line 344
            goto 57
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl java.net.SocketAddress java.lang.Object java.nio.channels.CompletionHandler java.net.InetSocketAddress java.lang.SecurityManager int java.lang.Throwable
      StackMap stack: java.lang.Throwable
        49: astore 8 /* x */
        start local 8 // java.lang.Throwable x
        50: .line 345
            aload 8 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 52
        51: .line 346
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 8 /* x */
        52: .line 347
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8 /* x */
            astore 7 /* e */
        end local 8 // java.lang.Throwable x
        53: .line 349
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
            goto 58
        54: .line 348
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl java.net.SocketAddress java.lang.Object java.nio.channels.CompletionHandler java.net.InetSocketAddress java.lang.SecurityManager int java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 11
        55: .line 349
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        56: .line 350
            aload 11
            athrow
        57: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        58: .line 353
      StackMap locals:
      StackMap stack:
            aload 7 /* e */
            ifnull 63
        59: .line 355
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.close:()V
        60: .line 356
            goto 63
      StackMap locals:
      StackMap stack: java.lang.Throwable
        61: astore 8 /* suppressed */
        start local 8 // java.lang.Throwable suppressed
        62: .line 357
            aload 7 /* e */
            aload 8 /* suppressed */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 8 // java.lang.Throwable suppressed
        63: .line 360
      StackMap locals:
      StackMap stack:
            aload 3 /* handler */
            ifnonnull 65
        64: .line 361
            aconst_null
            aload 7 /* e */
            invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
        65: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* handler */
            aload 2 /* attachment */
            aconst_null
            aload 7 /* e */
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        66: .line 364
            aconst_null
            areturn
        end local 7 // java.lang.Throwable e
        end local 6 // boolean notifyBeforeTcpConnect
        end local 5 // java.lang.SecurityManager sm
        end local 4 // java.net.InetSocketAddress isa
        end local 3 // java.nio.channels.CompletionHandler handler
        end local 2 // java.lang.Object attachment
        end local 1 // java.net.SocketAddress remote
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   67     0                    this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   67     1                  remote  Ljava/net/SocketAddress;
            0   67     2              attachment  TA;
            0   67     3                 handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Void;-TA;>;
            2    6     4                       e  Ljava/lang/Throwable;
            7   67     4                     isa  Ljava/net/InetSocketAddress;
            8   67     5                      sm  Ljava/lang/SecurityManager;
           20   22     6  notifyBeforeTcpConnect  Z
           24   67     6  notifyBeforeTcpConnect  Z
           25   67     7                       e  Ljava/lang/Throwable;
           29   48     8                       n  I
           31   47     9                  result  Lsun/nio/ch/PendingFuture<Ljava/lang/Void;TA;>;
           50   53     8                       x  Ljava/lang/Throwable;
           62   63     8              suppressed  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          11    21      22  any
          22    23      22  any
          32    41      42  any
          42    43      42  any
          25    45      49  Class java.lang.Throwable
          47    48      49  Class java.lang.Throwable
          25    45      54  any
          47    53      54  any
          59    60      61  Class java.lang.Throwable
    Signature: <A:Ljava/lang/Object;>(Ljava/net/SocketAddress;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Void;-TA;>;)Ljava/util/concurrent/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      remote      
      attachment  
      handler     

  private void finishRead(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // boolean mayInvokeDirect
         0: .line 371
            iconst_m1
            istore 2 /* n */
        start local 2 // int n
         1: .line 372
            aconst_null
            astore 3 /* exc */
        start local 3 // java.lang.Throwable exc
         2: .line 375
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.isScatteringRead:Z
            istore 4 /* scattering */
        start local 4 // boolean scattering
         3: .line 376
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readHandler:Ljava/nio/channels/CompletionHandler;
            astore 5 /* handler */
        start local 5 // java.nio.channels.CompletionHandler handler
         4: .line 377
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readAttachment:Ljava/lang/Object;
            astore 6 /* att */
        start local 6 // java.lang.Object att
         5: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readFuture:Lsun/nio/ch/PendingFuture;
            astore 7 /* future */
        start local 7 // sun.nio.ch.PendingFuture future
         6: .line 379
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readTimer:Ljava/util/concurrent/Future;
            astore 8 /* timeout */
        start local 8 // java.util.concurrent.Future timeout
         7: .line 382
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.begin:()V
         8: .line 384
            iload 4 /* scattering */
            ifeq 11
         9: .line 385
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readBuffers:[Ljava/nio/ByteBuffer;
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
            l2i
            istore 2 /* n */
        10: .line 386
            goto 12
        11: .line 387
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readBuffer:Ljava/nio/ByteBuffer;
            ldc -1
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 2 /* n */
        12: .line 389
      StackMap locals:
      StackMap stack:
            iload 2 /* n */
            bipush -2
            if_icmpne 23
        13: .line 391
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 9
            monitorenter
        14: .line 392
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readPending:Z
        15: .line 391
            aload 9
            monitorexit
        16: goto 19
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future java.lang.Object
      StackMap stack: java.lang.Throwable
        17: aload 9
            monitorexit
        18: athrow
        19: .line 412
      StackMap locals:
      StackMap stack:
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 21
        20: .line 413
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        21: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        22: .line 394
            return
        23: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readBuffer:Ljava/nio/ByteBuffer;
        24: .line 399
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readBuffers:[Ljava/nio/ByteBuffer;
        25: .line 400
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readAttachment:Ljava/lang/Object;
        26: .line 403
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableReading:()V
        27: .line 405
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 9 /* x */
        start local 9 // java.lang.Throwable x
        29: .line 406
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableReading:()V
        30: .line 407
            aload 9 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 32
        31: .line 408
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 9 /* x */
        32: .line 409
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9 /* x */
            astore 3 /* exc */
        end local 9 // java.lang.Throwable x
        33: .line 412
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 35
        34: .line 413
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        35: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
            goto 44
        36: .line 410
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        37: .line 412
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 39
        38: .line 413
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        39: .line 414
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        40: .line 415
            aload 10
            athrow
        41: .line 412
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future
      StackMap stack:
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 43
        42: .line 413
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        43: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        44: .line 418
      StackMap locals:
      StackMap stack:
            aload 8 /* timeout */
            ifnull 46
        45: .line 419
            aload 8 /* timeout */
            iconst_0
            invokeinterface java.util.concurrent.Future.cancel:(Z)Z
            pop
        46: .line 422
      StackMap locals:
      StackMap stack:
            aload 3 /* exc */
            ifnull 47
            aconst_null
            goto 50
      StackMap locals:
      StackMap stack:
        47: iload 4 /* scattering */
            ifeq 49
        48: .line 423
            iload 2 /* n */
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            goto 50
      StackMap locals:
      StackMap stack:
        49: iload 2 /* n */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        50: .line 422
      StackMap locals:
      StackMap stack: java.lang.Number
            astore 9 /* result */
        start local 9 // java.lang.Number result
        51: .line 426
            aload 5 /* handler */
            ifnonnull 54
        52: .line 427
            aload 7 /* future */
            aload 9 /* result */
            aload 3 /* exc */
            invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        53: .line 428
            goto 58
        54: .line 429
      StackMap locals: java.lang.Number
      StackMap stack:
            iload 1 /* mayInvokeDirect */
            ifeq 57
        55: .line 430
            aload 5 /* handler */
            aload 6 /* att */
            aload 9 /* result */
            aload 3 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        56: .line 431
            goto 58
        57: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* handler */
            aload 6 /* att */
            aload 9 /* result */
            aload 3 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        58: .line 435
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.lang.Number result
        end local 8 // java.util.concurrent.Future timeout
        end local 7 // sun.nio.ch.PendingFuture future
        end local 6 // java.lang.Object att
        end local 5 // java.nio.channels.CompletionHandler handler
        end local 4 // boolean scattering
        end local 3 // java.lang.Throwable exc
        end local 2 // int n
        end local 1 // boolean mayInvokeDirect
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   59     0             this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   59     1  mayInvokeDirect  Z
            1   59     2                n  I
            2   59     3              exc  Ljava/lang/Throwable;
            3   59     4       scattering  Z
            4   59     5          handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Number;Ljava/lang/Object;>;
            5   59     6              att  Ljava/lang/Object;
            6   59     7           future  Lsun/nio/ch/PendingFuture<Ljava/lang/Number;Ljava/lang/Object;>;
            7   59     8          timeout  Ljava/util/concurrent/Future<*>;
           29   33     9                x  Ljava/lang/Throwable;
           51   59     9           result  Ljava/lang/Number;
      Exception table:
        from    to  target  type
          14    16      17  any
          17    18      17  any
           7    19      28  Class java.lang.Throwable
          23    27      28  Class java.lang.Throwable
           7    19      36  any
          23    33      36  any
    MethodParameters:
                 Name  Flags
      mayInvokeDirect  

  <V extends java.lang.Number, A> java.util.concurrent.Future<V> implRead(boolean, java.nio.ByteBuffer, java.nio.ByteBuffer[], long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<V, ? super A>);
    descriptor: (ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0000) 
    Code:
      stack=6, locals=19, args_size=8
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // boolean isScatteringRead
        start local 2 // java.nio.ByteBuffer dst
        start local 3 // java.nio.ByteBuffer[] dsts
        start local 4 // long timeout
        start local 6 // java.util.concurrent.TimeUnit unit
        start local 7 // java.lang.Object attachment
        start local 8 // java.nio.channels.CompletionHandler handler
         0: .line 483
            aconst_null
            astore 9 /* myGroupAndInvokeCount */
        start local 9 // sun.nio.ch.Invoker$GroupAndInvokeCount myGroupAndInvokeCount
         1: .line 484
            iconst_0
            istore 10 /* invokeDirect */
        start local 10 // boolean invokeDirect
         2: .line 485
            iconst_0
            istore 11 /* attemptRead */
        start local 11 // boolean attemptRead
         3: .line 486
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.disableSynchronousRead:Z
            ifne 12
         4: .line 487
            aload 8 /* handler */
            ifnonnull 7
         5: .line 488
            iconst_1
            istore 11 /* attemptRead */
         6: .line 489
            goto 12
         7: .line 490
      StackMap locals: sun.nio.ch.Invoker$GroupAndInvokeCount int int
      StackMap stack:
            invokestatic sun.nio.ch.Invoker.getGroupAndInvokeCount:()Lsun/nio/ch/Invoker$GroupAndInvokeCount;
            astore 9 /* myGroupAndInvokeCount */
         8: .line 491
            aload 9 /* myGroupAndInvokeCount */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            invokestatic sun.nio.ch.Invoker.mayInvokeDirect:(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Lsun/nio/ch/AsynchronousChannelGroupImpl;)Z
            istore 10 /* invokeDirect */
         9: .line 493
            iload 10 /* invokeDirect */
            ifne 10
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            invokevirtual sun.nio.ch.Port.isFixedThreadPool:()Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 11 /* attemptRead */
        12: .line 497
      StackMap locals:
      StackMap stack:
            bipush -2
            istore 12 /* n */
        start local 12 // int n
        13: .line 498
            aconst_null
            astore 13 /* exc */
        start local 13 // java.lang.Throwable exc
        14: .line 499
            iconst_0
            istore 14 /* pending */
        start local 14 // boolean pending
        15: .line 502
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.begin:()V
        16: .line 504
            iload 11 /* attemptRead */
            ifeq 21
        17: .line 505
            iload 1 /* isScatteringRead */
            ifeq 20
        18: .line 506
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 3 /* dsts */
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
            l2i
            istore 12 /* n */
        19: .line 507
            goto 21
        20: .line 508
      StackMap locals: int java.lang.Throwable int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 2 /* dst */
            ldc -1
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 12 /* n */
        21: .line 512
      StackMap locals:
      StackMap stack:
            iload 12 /* n */
            bipush -2
            if_icmpne 62
        22: .line 513
            aconst_null
            astore 15 /* result */
        start local 15 // sun.nio.ch.PendingFuture result
        23: .line 514
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 16
            monitorenter
        24: .line 515
            aload 0 /* this */
            iload 1 /* isScatteringRead */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.isScatteringRead:Z
        25: .line 516
            aload 0 /* this */
            aload 2 /* dst */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readBuffer:Ljava/nio/ByteBuffer;
        26: .line 517
            aload 0 /* this */
            aload 3 /* dsts */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readBuffers:[Ljava/nio/ByteBuffer;
        27: .line 518
            aload 8 /* handler */
            ifnonnull 33
        28: .line 519
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readHandler:Ljava/nio/channels/CompletionHandler;
        29: .line 520
            new sun.nio.ch.PendingFuture
            dup
            aload 0 /* this */
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType.READ:Lsun/nio/ch/UnixAsynchronousSocketChannelImpl$OpType;
            invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/lang/Object;)V
            astore 15 /* result */
        30: .line 521
            aload 0 /* this */
            aload 15 /* result */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readFuture:Lsun/nio/ch/PendingFuture;
        31: .line 522
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readAttachment:Ljava/lang/Object;
        32: .line 523
            goto 36
        33: .line 524
      StackMap locals: sun.nio.ch.PendingFuture java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 8 /* handler */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readHandler:Ljava/nio/channels/CompletionHandler;
        34: .line 525
            aload 0 /* this */
            aload 7 /* attachment */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readAttachment:Ljava/lang/Object;
        35: .line 526
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readFuture:Lsun/nio/ch/PendingFuture;
        36: .line 528
      StackMap locals:
      StackMap stack:
            lload 4 /* timeout */
            lconst_0
            lcmp
            ifle 38
        37: .line 529
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readTimeoutTask:Ljava/lang/Runnable;
            lload 4 /* timeout */
            aload 6 /* unit */
            invokevirtual sun.nio.ch.Port.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readTimer:Ljava/util/concurrent/Future;
        38: .line 531
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.readPending:Z
        39: .line 532
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateEvents:()V
        40: .line 514
            aload 16
            monitorexit
        41: goto 44
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: aload 16
            monitorexit
        43: athrow
        44: .line 534
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 14 /* pending */
        45: .line 535
            aload 15 /* result */
            astore 18
        46: .line 542
            iload 14 /* pending */
            ifne 48
        47: .line 543
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableReading:()V
        48: .line 544
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int sun.nio.ch.PendingFuture top top java.util.concurrent.Future
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        49: .line 535
            aload 18
            areturn
        end local 15 // sun.nio.ch.PendingFuture result
        50: .line 537
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int
      StackMap stack: java.lang.Throwable
            astore 15 /* x */
        start local 15 // java.lang.Throwable x
        51: .line 538
            aload 15 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 53
        52: .line 539
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 15 /* x */
        53: .line 540
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 15 /* x */
            astore 13 /* exc */
        end local 15 // java.lang.Throwable x
        54: .line 542
            iload 14 /* pending */
            ifne 56
        55: .line 543
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableReading:()V
        56: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
            goto 65
        57: .line 541
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 17
        58: .line 542
            iload 14 /* pending */
            ifne 60
        59: .line 543
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableReading:()V
        60: .line 544
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        61: .line 545
            aload 17
            athrow
        62: .line 542
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int
      StackMap stack:
            iload 14 /* pending */
            ifne 64
        63: .line 543
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableReading:()V
        64: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        65: .line 547
      StackMap locals:
      StackMap stack:
            aload 13 /* exc */
            ifnull 66
            aconst_null
            goto 69
      StackMap locals:
      StackMap stack:
        66: iload 1 /* isScatteringRead */
            ifeq 68
        67: .line 548
            iload 12 /* n */
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            goto 69
      StackMap locals:
      StackMap stack:
        68: iload 12 /* n */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        69: .line 547
      StackMap locals:
      StackMap stack: java.lang.Number
            astore 15 /* result */
        start local 15 // java.lang.Number result
        70: .line 551
            aload 8 /* handler */
            ifnull 76
        71: .line 552
            iload 10 /* invokeDirect */
            ifeq 74
        72: .line 553
            aload 9 /* myGroupAndInvokeCount */
            aload 8 /* handler */
            aload 7 /* attachment */
            aload 15 /* result */
            aload 13 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeDirect:(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        73: .line 554
            goto 75
        74: .line 555
      StackMap locals: java.lang.Number
      StackMap stack:
            aload 0 /* this */
            aload 8 /* handler */
            aload 7 /* attachment */
            aload 15 /* result */
            aload 13 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        75: .line 557
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        76: .line 559
      StackMap locals:
      StackMap stack:
            aload 15 /* result */
            aload 13 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
        end local 15 // java.lang.Number result
        end local 14 // boolean pending
        end local 13 // java.lang.Throwable exc
        end local 12 // int n
        end local 11 // boolean attemptRead
        end local 10 // boolean invokeDirect
        end local 9 // sun.nio.ch.Invoker$GroupAndInvokeCount myGroupAndInvokeCount
        end local 8 // java.nio.channels.CompletionHandler handler
        end local 7 // java.lang.Object attachment
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long timeout
        end local 3 // java.nio.ByteBuffer[] dsts
        end local 2 // java.nio.ByteBuffer dst
        end local 1 // boolean isScatteringRead
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   77     0                   this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   77     1       isScatteringRead  Z
            0   77     2                    dst  Ljava/nio/ByteBuffer;
            0   77     3                   dsts  [Ljava/nio/ByteBuffer;
            0   77     4                timeout  J
            0   77     6                   unit  Ljava/util/concurrent/TimeUnit;
            0   77     7             attachment  TA;
            0   77     8                handler  Ljava/nio/channels/CompletionHandler<TV;-TA;>;
            1   77     9  myGroupAndInvokeCount  Lsun/nio/ch/Invoker$GroupAndInvokeCount;
            2   77    10           invokeDirect  Z
            3   77    11            attemptRead  Z
           13   77    12                      n  I
           14   77    13                    exc  Ljava/lang/Throwable;
           15   77    14                pending  Z
           23   50    15                 result  Lsun/nio/ch/PendingFuture<TV;TA;>;
           51   54    15                      x  Ljava/lang/Throwable;
           70   77    15                 result  Ljava/lang/Number;
      Exception table:
        from    to  target  type
          24    41      42  any
          42    43      42  any
          15    46      50  Class java.lang.Throwable
          15    46      57  any
          50    54      57  any
    Signature: <V:Ljava/lang/Number;A:Ljava/lang/Object;>(ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<TV;-TA;>;)Ljava/util/concurrent/Future<TV;>;
    MethodParameters:
                  Name  Flags
      isScatteringRead  
      dst               
      dsts              
      timeout           
      unit              
      attachment        
      handler           

  private void finishWrite(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // boolean mayInvokeDirect
         0: .line 566
            iconst_m1
            istore 2 /* n */
        start local 2 // int n
         1: .line 567
            aconst_null
            astore 3 /* exc */
        start local 3 // java.lang.Throwable exc
         2: .line 570
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.isGatheringWrite:Z
            istore 4 /* gathering */
        start local 4 // boolean gathering
         3: .line 571
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeHandler:Ljava/nio/channels/CompletionHandler;
            astore 5 /* handler */
        start local 5 // java.nio.channels.CompletionHandler handler
         4: .line 572
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeAttachment:Ljava/lang/Object;
            astore 6 /* att */
        start local 6 // java.lang.Object att
         5: .line 573
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeFuture:Lsun/nio/ch/PendingFuture;
            astore 7 /* future */
        start local 7 // sun.nio.ch.PendingFuture future
         6: .line 574
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeTimer:Ljava/util/concurrent/Future;
            astore 8 /* timer */
        start local 8 // java.util.concurrent.Future timer
         7: .line 577
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.begin:()V
         8: .line 579
            iload 4 /* gathering */
            ifeq 11
         9: .line 580
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeBuffers:[Ljava/nio/ByteBuffer;
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
            l2i
            istore 2 /* n */
        10: .line 581
            goto 12
        11: .line 582
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeBuffer:Ljava/nio/ByteBuffer;
            ldc -1
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 2 /* n */
        12: .line 584
      StackMap locals:
      StackMap stack:
            iload 2 /* n */
            bipush -2
            if_icmpne 23
        13: .line 586
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 9
            monitorenter
        14: .line 587
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writePending:Z
        15: .line 586
            aload 9
            monitorexit
        16: goto 19
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future java.lang.Object
      StackMap stack: java.lang.Throwable
        17: aload 9
            monitorexit
        18: athrow
        19: .line 607
      StackMap locals:
      StackMap stack:
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 21
        20: .line 608
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        21: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        22: .line 589
            return
        23: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeBuffer:Ljava/nio/ByteBuffer;
        24: .line 594
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeBuffers:[Ljava/nio/ByteBuffer;
        25: .line 595
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeAttachment:Ljava/lang/Object;
        26: .line 598
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableWriting:()V
        27: .line 600
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 9 /* x */
        start local 9 // java.lang.Throwable x
        29: .line 601
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableWriting:()V
        30: .line 602
            aload 9 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 32
        31: .line 603
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 9 /* x */
        32: .line 604
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9 /* x */
            astore 3 /* exc */
        end local 9 // java.lang.Throwable x
        33: .line 607
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 35
        34: .line 608
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        35: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
            goto 44
        36: .line 605
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        37: .line 607
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 39
        38: .line 608
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        39: .line 609
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        40: .line 610
            aload 10
            athrow
        41: .line 607
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int int java.lang.Throwable int java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture java.util.concurrent.Future
      StackMap stack:
            aload 3 /* exc */
            instanceof java.nio.channels.AsynchronousCloseException
            ifne 43
        42: .line 608
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.lockAndUpdateEvents:()V
        43: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        44: .line 613
      StackMap locals:
      StackMap stack:
            aload 8 /* timer */
            ifnull 46
        45: .line 614
            aload 8 /* timer */
            iconst_0
            invokeinterface java.util.concurrent.Future.cancel:(Z)Z
            pop
        46: .line 617
      StackMap locals:
      StackMap stack:
            aload 3 /* exc */
            ifnull 47
            aconst_null
            goto 50
      StackMap locals:
      StackMap stack:
        47: iload 4 /* gathering */
            ifeq 49
        48: .line 618
            iload 2 /* n */
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            goto 50
      StackMap locals:
      StackMap stack:
        49: iload 2 /* n */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        50: .line 617
      StackMap locals:
      StackMap stack: java.lang.Number
            astore 9 /* result */
        start local 9 // java.lang.Number result
        51: .line 621
            aload 5 /* handler */
            ifnonnull 54
        52: .line 622
            aload 7 /* future */
            aload 9 /* result */
            aload 3 /* exc */
            invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        53: .line 623
            goto 58
        54: .line 624
      StackMap locals: java.lang.Number
      StackMap stack:
            iload 1 /* mayInvokeDirect */
            ifeq 57
        55: .line 625
            aload 5 /* handler */
            aload 6 /* att */
            aload 9 /* result */
            aload 3 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        56: .line 626
            goto 58
        57: .line 627
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* handler */
            aload 6 /* att */
            aload 9 /* result */
            aload 3 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        58: .line 630
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.lang.Number result
        end local 8 // java.util.concurrent.Future timer
        end local 7 // sun.nio.ch.PendingFuture future
        end local 6 // java.lang.Object att
        end local 5 // java.nio.channels.CompletionHandler handler
        end local 4 // boolean gathering
        end local 3 // java.lang.Throwable exc
        end local 2 // int n
        end local 1 // boolean mayInvokeDirect
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   59     0             this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   59     1  mayInvokeDirect  Z
            1   59     2                n  I
            2   59     3              exc  Ljava/lang/Throwable;
            3   59     4        gathering  Z
            4   59     5          handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Number;Ljava/lang/Object;>;
            5   59     6              att  Ljava/lang/Object;
            6   59     7           future  Lsun/nio/ch/PendingFuture<Ljava/lang/Number;Ljava/lang/Object;>;
            7   59     8            timer  Ljava/util/concurrent/Future<*>;
           29   33     9                x  Ljava/lang/Throwable;
           51   59     9           result  Ljava/lang/Number;
      Exception table:
        from    to  target  type
          14    16      17  any
          17    18      17  any
           7    19      28  Class java.lang.Throwable
          23    27      28  Class java.lang.Throwable
           7    19      36  any
          23    33      36  any
    MethodParameters:
                 Name  Flags
      mayInvokeDirect  

  <V extends java.lang.Number, A> java.util.concurrent.Future<V> implWrite(boolean, java.nio.ByteBuffer, java.nio.ByteBuffer[], long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<V, ? super A>);
    descriptor: (ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0000) 
    Code:
      stack=6, locals=19, args_size=8
        start local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
        start local 1 // boolean isGatheringWrite
        start local 2 // java.nio.ByteBuffer src
        start local 3 // java.nio.ByteBuffer[] srcs
        start local 4 // long timeout
        start local 6 // java.util.concurrent.TimeUnit unit
        start local 7 // java.lang.Object attachment
        start local 8 // java.nio.channels.CompletionHandler handler
         0: .line 675
            invokestatic sun.nio.ch.Invoker.getGroupAndInvokeCount:()Lsun/nio/ch/Invoker$GroupAndInvokeCount;
         1: .line 674
            astore 9 /* myGroupAndInvokeCount */
        start local 9 // sun.nio.ch.Invoker$GroupAndInvokeCount myGroupAndInvokeCount
         2: .line 676
            aload 9 /* myGroupAndInvokeCount */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            invokestatic sun.nio.ch.Invoker.mayInvokeDirect:(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Lsun/nio/ch/AsynchronousChannelGroupImpl;)Z
            istore 10 /* invokeDirect */
        start local 10 // boolean invokeDirect
         3: .line 677
            aload 8 /* handler */
            ifnull 6
            iload 10 /* invokeDirect */
            ifne 6
         4: .line 678
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            invokevirtual sun.nio.ch.Port.isFixedThreadPool:()Z
            ifeq 6
         5: .line 677
            iconst_0
            goto 7
      StackMap locals: sun.nio.ch.Invoker$GroupAndInvokeCount int
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 11 /* attemptWrite */
        start local 11 // boolean attemptWrite
         8: .line 680
            bipush -2
            istore 12 /* n */
        start local 12 // int n
         9: .line 681
            aconst_null
            astore 13 /* exc */
        start local 13 // java.lang.Throwable exc
        10: .line 682
            iconst_0
            istore 14 /* pending */
        start local 14 // boolean pending
        11: .line 685
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.begin:()V
        12: .line 687
            iload 11 /* attemptWrite */
            ifeq 17
        13: .line 688
            iload 1 /* isGatheringWrite */
            ifeq 16
        14: .line 689
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 3 /* srcs */
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
            l2i
            istore 12 /* n */
        15: .line 690
            goto 17
        16: .line 691
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 2 /* src */
            ldc -1
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 12 /* n */
        17: .line 695
      StackMap locals:
      StackMap stack:
            iload 12 /* n */
            bipush -2
            if_icmpne 58
        18: .line 696
            aconst_null
            astore 15 /* result */
        start local 15 // sun.nio.ch.PendingFuture result
        19: .line 697
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateLock:Ljava/lang/Object;
            dup
            astore 16
            monitorenter
        20: .line 698
            aload 0 /* this */
            iload 1 /* isGatheringWrite */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.isGatheringWrite:Z
        21: .line 699
            aload 0 /* this */
            aload 2 /* src */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeBuffer:Ljava/nio/ByteBuffer;
        22: .line 700
            aload 0 /* this */
            aload 3 /* srcs */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeBuffers:[Ljava/nio/ByteBuffer;
        23: .line 701
            aload 8 /* handler */
            ifnonnull 29
        24: .line 702
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeHandler:Ljava/nio/channels/CompletionHandler;
        25: .line 703
            new sun.nio.ch.PendingFuture
            dup
            aload 0 /* this */
            getstatic sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType.WRITE:Lsun/nio/ch/UnixAsynchronousSocketChannelImpl$OpType;
            invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/lang/Object;)V
            astore 15 /* result */
        26: .line 704
            aload 0 /* this */
            aload 15 /* result */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeFuture:Lsun/nio/ch/PendingFuture;
        27: .line 705
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeAttachment:Ljava/lang/Object;
        28: .line 706
            goto 32
        29: .line 707
      StackMap locals: sun.nio.ch.PendingFuture java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 8 /* handler */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeHandler:Ljava/nio/channels/CompletionHandler;
        30: .line 708
            aload 0 /* this */
            aload 7 /* attachment */
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeAttachment:Ljava/lang/Object;
        31: .line 709
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeFuture:Lsun/nio/ch/PendingFuture;
        32: .line 711
      StackMap locals:
      StackMap stack:
            lload 4 /* timeout */
            lconst_0
            lcmp
            ifle 34
        33: .line 712
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.port:Lsun/nio/ch/Port;
            aload 0 /* this */
            getfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeTimeoutTask:Ljava/lang/Runnable;
            lload 4 /* timeout */
            aload 6 /* unit */
            invokevirtual sun.nio.ch.Port.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writeTimer:Ljava/util/concurrent/Future;
        34: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.UnixAsynchronousSocketChannelImpl.writePending:Z
        35: .line 715
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.updateEvents:()V
        36: .line 697
            aload 16
            monitorexit
        37: goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: aload 16
            monitorexit
        39: athrow
        40: .line 717
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 14 /* pending */
        41: .line 718
            aload 15 /* result */
            astore 18
        42: .line 725
            iload 14 /* pending */
            ifne 44
        43: .line 726
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableWriting:()V
        44: .line 727
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int sun.nio.ch.PendingFuture top top java.util.concurrent.Future
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        45: .line 718
            aload 18
            areturn
        end local 15 // sun.nio.ch.PendingFuture result
        46: .line 720
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int
      StackMap stack: java.lang.Throwable
            astore 15 /* x */
        start local 15 // java.lang.Throwable x
        47: .line 721
            aload 15 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 49
        48: .line 722
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 15 /* x */
        49: .line 723
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 15 /* x */
            astore 13 /* exc */
        end local 15 // java.lang.Throwable x
        50: .line 725
            iload 14 /* pending */
            ifne 52
        51: .line 726
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableWriting:()V
        52: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
            goto 61
        53: .line 724
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 17
        54: .line 725
            iload 14 /* pending */
            ifne 56
        55: .line 726
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableWriting:()V
        56: .line 727
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        57: .line 728
            aload 17
            athrow
        58: .line 725
      StackMap locals: sun.nio.ch.UnixAsynchronousSocketChannelImpl int java.nio.ByteBuffer java.nio.ByteBuffer[] long java.util.concurrent.TimeUnit java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.Invoker$GroupAndInvokeCount int int int java.lang.Throwable int
      StackMap stack:
            iload 14 /* pending */
            ifne 60
        59: .line 726
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.enableWriting:()V
        60: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.UnixAsynchronousSocketChannelImpl.end:()V
        61: .line 730
      StackMap locals:
      StackMap stack:
            aload 13 /* exc */
            ifnull 62
            aconst_null
            goto 65
      StackMap locals:
      StackMap stack:
        62: iload 1 /* isGatheringWrite */
            ifeq 64
        63: .line 731
            iload 12 /* n */
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            goto 65
      StackMap locals:
      StackMap stack:
        64: iload 12 /* n */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        65: .line 730
      StackMap locals:
      StackMap stack: java.lang.Number
            astore 15 /* result */
        start local 15 // java.lang.Number result
        66: .line 734
            aload 8 /* handler */
            ifnull 72
        67: .line 735
            iload 10 /* invokeDirect */
            ifeq 70
        68: .line 736
            aload 9 /* myGroupAndInvokeCount */
            aload 8 /* handler */
            aload 7 /* attachment */
            aload 15 /* result */
            aload 13 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeDirect:(Lsun/nio/ch/Invoker$GroupAndInvokeCount;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        69: .line 737
            goto 71
        70: .line 738
      StackMap locals: java.lang.Number
      StackMap stack:
            aload 0 /* this */
            aload 8 /* handler */
            aload 7 /* attachment */
            aload 15 /* result */
            aload 13 /* exc */
            invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        71: .line 740
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        72: .line 742
      StackMap locals:
      StackMap stack:
            aload 15 /* result */
            aload 13 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
        end local 15 // java.lang.Number result
        end local 14 // boolean pending
        end local 13 // java.lang.Throwable exc
        end local 12 // int n
        end local 11 // boolean attemptWrite
        end local 10 // boolean invokeDirect
        end local 9 // sun.nio.ch.Invoker$GroupAndInvokeCount myGroupAndInvokeCount
        end local 8 // java.nio.channels.CompletionHandler handler
        end local 7 // java.lang.Object attachment
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long timeout
        end local 3 // java.nio.ByteBuffer[] srcs
        end local 2 // java.nio.ByteBuffer src
        end local 1 // boolean isGatheringWrite
        end local 0 // sun.nio.ch.UnixAsynchronousSocketChannelImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   73     0                   this  Lsun/nio/ch/UnixAsynchronousSocketChannelImpl;
            0   73     1       isGatheringWrite  Z
            0   73     2                    src  Ljava/nio/ByteBuffer;
            0   73     3                   srcs  [Ljava/nio/ByteBuffer;
            0   73     4                timeout  J
            0   73     6                   unit  Ljava/util/concurrent/TimeUnit;
            0   73     7             attachment  TA;
            0   73     8                handler  Ljava/nio/channels/CompletionHandler<TV;-TA;>;
            2   73     9  myGroupAndInvokeCount  Lsun/nio/ch/Invoker$GroupAndInvokeCount;
            3   73    10           invokeDirect  Z
            8   73    11           attemptWrite  Z
            9   73    12                      n  I
           10   73    13                    exc  Ljava/lang/Throwable;
           11   73    14                pending  Z
           19   46    15                 result  Lsun/nio/ch/PendingFuture<TV;TA;>;
           47   50    15                      x  Ljava/lang/Throwable;
           66   73    15                 result  Ljava/lang/Number;
      Exception table:
        from    to  target  type
          20    37      38  any
          38    39      38  any
          11    42      46  Class java.lang.Throwable
          11    42      53  any
          46    50      53  any
    Signature: <V:Ljava/lang/Number;A:Ljava/lang/Object;>(ZLjava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<TV;-TA;>;)Ljava/util/concurrent/Future<TV;>;
    MethodParameters:
                  Name  Flags
      isGatheringWrite  
      src               
      srcs              
      timeout           
      unit              
      attachment        
      handler           

  private static native void checkConnect(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fdVal  
}
SourceFile: "UnixAsynchronousSocketChannelImpl.java"
NestMembers:
  sun.nio.ch.UnixAsynchronousSocketChannelImpl$1  sun.nio.ch.UnixAsynchronousSocketChannelImpl$2  sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType
InnerClasses:
  GroupAndInvokeCount = sun.nio.ch.Invoker$GroupAndInvokeCount of sun.nio.ch.Invoker
  abstract PollableChannel = sun.nio.ch.Port$PollableChannel of sun.nio.ch.Port
  sun.nio.ch.UnixAsynchronousSocketChannelImpl$1
  sun.nio.ch.UnixAsynchronousSocketChannelImpl$2
  private final OpType = sun.nio.ch.UnixAsynchronousSocketChannelImpl$OpType of sun.nio.ch.UnixAsynchronousSocketChannelImpl