public final class io.netty.channel.PendingWriteQueue
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.netty.channel.PendingWriteQueue
  super_class: java.lang.Object
{
  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int PENDING_WRITE_OVERHEAD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.netty.channel.ChannelHandlerContext ctx;
    descriptor: Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.PendingBytesTracker tracker;
    descriptor: Lio/netty/channel/PendingBytesTracker;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private io.netty.channel.PendingWriteQueue$PendingWrite head;
    descriptor: Lio/netty/channel/PendingWriteQueue$PendingWrite;
    flags: (0x0002) ACC_PRIVATE

  private io.netty.channel.PendingWriteQueue$PendingWrite tail;
    descriptor: Lio/netty/channel/PendingWriteQueue$PendingWrite;
    flags: (0x0002) ACC_PRIVATE

  private int size;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long bytes;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 31
            ldc Lio/netty/channel/PendingWriteQueue;
            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 io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
         3: .line 32
            ldc Lio/netty/channel/PendingWriteQueue;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.channel.PendingWriteQueue.logger:Lio/netty/util/internal/logging/InternalLogger;
         4: .line 38
            ldc "io.netty.transport.pendingWriteSizeOverhead"
            bipush 64
            invokestatic io.netty.util.internal.SystemPropertyUtil.getInt:(Ljava/lang/String;I)I
         5: .line 37
            putstatic io.netty.channel.PendingWriteQueue.PENDING_WRITE_OVERHEAD:I
         6: .line 38
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.PendingWriteQueue this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokestatic io.netty.channel.PendingBytesTracker.newTracker:(Lio/netty/channel/Channel;)Lio/netty/channel/PendingBytesTracker;
            putfield io.netty.channel.PendingWriteQueue.tracker:Lio/netty/channel/PendingBytesTracker;
         2: .line 51
            aload 0 /* this */
            aload 1 /* ctx */
            putfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
         3: .line 52
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/PendingWriteQueue;
            0    4     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    MethodParameters:
      Name  Flags
      ctx   

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 58
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 59
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            ifnonnull 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/PendingWriteQueue;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 66
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.size:I
            ireturn
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/PendingWriteQueue;

  public long bytes();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 75
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.bytes:J
            lreturn
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/PendingWriteQueue;

  private int size(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.netty.channel.PendingWriteQueue this
        start local 1 // java.lang.Object msg
         0: .line 82
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.tracker:Lio/netty/channel/PendingBytesTracker;
            aload 1 /* msg */
            invokevirtual io.netty.channel.PendingBytesTracker.size:(Ljava/lang/Object;)I
            istore 2 /* messageSize */
        start local 2 // int messageSize
         1: .line 83
            iload 2 /* messageSize */
            ifge 3
         2: .line 85
            iconst_0
            istore 2 /* messageSize */
         3: .line 87
      StackMap locals: int
      StackMap stack:
            iload 2 /* messageSize */
            getstatic io.netty.channel.PendingWriteQueue.PENDING_WRITE_OVERHEAD:I
            iadd
            ireturn
        end local 2 // int messageSize
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lio/netty/channel/PendingWriteQueue;
            0    4     1          msg  Ljava/lang/Object;
            1    4     2  messageSize  I
    MethodParameters:
      Name  Flags
      msg   

  public void add(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.netty.channel.PendingWriteQueue this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 94
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 95
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            ifnonnull 3
         2: .line 96
            new java.lang.NullPointerException
            dup
            ldc "msg"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 98
      StackMap locals:
      StackMap stack:
            aload 2 /* promise */
            ifnonnull 5
         4: .line 99
            new java.lang.NullPointerException
            dup
            ldc "promise"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual io.netty.channel.PendingWriteQueue.size:(Ljava/lang/Object;)I
            istore 3 /* messageSize */
        start local 3 // int messageSize
         6: .line 105
            aload 1 /* msg */
            iload 3 /* messageSize */
            aload 2 /* promise */
            invokestatic io.netty.channel.PendingWriteQueue$PendingWrite.newInstance:(Ljava/lang/Object;ILio/netty/channel/ChannelPromise;)Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 4 /* write */
        start local 4 // io.netty.channel.PendingWriteQueue$PendingWrite write
         7: .line 106
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 5 /* currentTail */
        start local 5 // io.netty.channel.PendingWriteQueue$PendingWrite currentTail
         8: .line 107
            aload 5 /* currentTail */
            ifnonnull 11
         9: .line 108
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* write */
            dup_x1
            putfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            putfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
        10: .line 109
            goto 13
        11: .line 110
      StackMap locals: int io.netty.channel.PendingWriteQueue$PendingWrite io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 5 /* currentTail */
            aload 4 /* write */
            putfield io.netty.channel.PendingWriteQueue$PendingWrite.next:Lio/netty/channel/PendingWriteQueue$PendingWrite;
        12: .line 111
            aload 0 /* this */
            aload 4 /* write */
            putfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
        13: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.netty.channel.PendingWriteQueue.size:I
            iconst_1
            iadd
            putfield io.netty.channel.PendingWriteQueue.size:I
        14: .line 114
            aload 0 /* this */
            dup
            getfield io.netty.channel.PendingWriteQueue.bytes:J
            iload 3 /* messageSize */
            i2l
            ladd
            putfield io.netty.channel.PendingWriteQueue.bytes:J
        15: .line 115
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.tracker:Lio/netty/channel/PendingBytesTracker;
            aload 4 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.size:J
            invokevirtual io.netty.channel.PendingBytesTracker.incrementPendingOutboundBytes:(J)V
        16: .line 116
            return
        end local 5 // io.netty.channel.PendingWriteQueue$PendingWrite currentTail
        end local 4 // io.netty.channel.PendingWriteQueue$PendingWrite write
        end local 3 // int messageSize
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lio/netty/channel/PendingWriteQueue;
            0   17     1          msg  Ljava/lang/Object;
            0   17     2      promise  Lio/netty/channel/ChannelPromise;
            6   17     3  messageSize  I
            7   17     4        write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
            8   17     5  currentTail  Lio/netty/channel/PendingWriteQueue$PendingWrite;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public io.netty.channel.ChannelFuture removeAndWriteAll();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 126
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.PendingWriteQueue.isEmpty:()Z
            ifeq 3
         2: .line 129
            aconst_null
            areturn
         3: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            astore 1 /* p */
        start local 1 // io.netty.channel.ChannelPromise p
         4: .line 133
            new io.netty.util.concurrent.PromiseCombiner
            dup
            invokespecial io.netty.util.concurrent.PromiseCombiner.<init>:()V
            astore 2 /* combiner */
        start local 2 // io.netty.util.concurrent.PromiseCombiner combiner
         5: .line 137
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 3 /* write */
        start local 3 // io.netty.channel.PendingWriteQueue$PendingWrite write
         6: goto 21
         7: .line 138
      StackMap locals: io.netty.channel.ChannelPromise io.netty.util.concurrent.PromiseCombiner io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            dup_x1
            putfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            putfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
         8: .line 139
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.PendingWriteQueue.size:I
         9: .line 140
            aload 0 /* this */
            lconst_0
            putfield io.netty.channel.PendingWriteQueue.bytes:J
        10: .line 142
            goto 19
        11: .line 143
      StackMap locals:
      StackMap stack:
            aload 3 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.next:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 4 /* next */
        start local 4 // io.netty.channel.PendingWriteQueue$PendingWrite next
        12: .line 144
            aload 3 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.msg:Ljava/lang/Object;
            astore 5 /* msg */
        start local 5 // java.lang.Object msg
        13: .line 145
            aload 3 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
            astore 6 /* promise */
        start local 6 // io.netty.channel.ChannelPromise promise
        14: .line 146
            aload 0 /* this */
            aload 3 /* write */
            iconst_0
            invokevirtual io.netty.channel.PendingWriteQueue.recycle:(Lio/netty/channel/PendingWriteQueue$PendingWrite;Z)V
        15: .line 147
            aload 6 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifne 17
        16: .line 148
            aload 2 /* combiner */
            aload 6 /* promise */
            invokevirtual io.netty.util.concurrent.PromiseCombiner.add:(Lio/netty/util/concurrent/Promise;)V
        17: .line 150
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite java.lang.Object io.netty.channel.ChannelPromise
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            aload 5 /* msg */
            aload 6 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
        18: .line 151
            aload 4 /* next */
            astore 3 /* write */
        end local 6 // io.netty.channel.ChannelPromise promise
        end local 5 // java.lang.Object msg
        end local 4 // io.netty.channel.PendingWriteQueue$PendingWrite next
        19: .line 142
      StackMap locals:
      StackMap stack:
            aload 3 /* write */
            ifnonnull 11
        20: .line 137
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 3 /* write */
      StackMap locals:
      StackMap stack:
        21: aload 3 /* write */
            ifnonnull 7
        end local 3 // io.netty.channel.PendingWriteQueue$PendingWrite write
        22: .line 154
            aload 2 /* combiner */
            aload 1 /* p */
            invokevirtual io.netty.util.concurrent.PromiseCombiner.finish:(Lio/netty/util/concurrent/Promise;)V
        23: .line 155
            goto 26
      StackMap locals: io.netty.channel.PendingWriteQueue io.netty.channel.ChannelPromise io.netty.util.concurrent.PromiseCombiner
      StackMap stack: java.lang.Throwable
        24: astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
        25: .line 156
            aload 1 /* p */
            aload 3 /* cause */
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
        end local 3 // java.lang.Throwable cause
        26: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.PendingWriteQueue.assertEmpty:()V
        27: .line 159
            aload 1 /* p */
            areturn
        end local 2 // io.netty.util.concurrent.PromiseCombiner combiner
        end local 1 // io.netty.channel.ChannelPromise p
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lio/netty/channel/PendingWriteQueue;
            4   28     1         p  Lio/netty/channel/ChannelPromise;
            5   28     2  combiner  Lio/netty/util/concurrent/PromiseCombiner;
            6   22     3     write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
           12   19     4      next  Lio/netty/channel/PendingWriteQueue$PendingWrite;
           13   19     5       msg  Ljava/lang/Object;
           14   19     6   promise  Lio/netty/channel/ChannelPromise;
           25   26     3     cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5    23      24  Class java.lang.Throwable

  public void removeAndFailAll(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.netty.channel.PendingWriteQueue this
        start local 1 // java.lang.Throwable cause
         0: .line 167
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            ifnonnull 3
         2: .line 169
            new java.lang.NullPointerException
            dup
            ldc "cause"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 2 /* write */
        start local 2 // io.netty.channel.PendingWriteQueue$PendingWrite write
         4: goto 17
         5: .line 174
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            dup_x1
            putfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            putfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
         6: .line 175
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.PendingWriteQueue.size:I
         7: .line 176
            aload 0 /* this */
            lconst_0
            putfield io.netty.channel.PendingWriteQueue.bytes:J
         8: .line 177
            goto 15
         9: .line 178
      StackMap locals:
      StackMap stack:
            aload 2 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.next:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 3 /* next */
        start local 3 // io.netty.channel.PendingWriteQueue$PendingWrite next
        10: .line 179
            aload 2 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.msg:Ljava/lang/Object;
            invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
        11: .line 180
            aload 2 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
            astore 4 /* promise */
        start local 4 // io.netty.channel.ChannelPromise promise
        12: .line 181
            aload 0 /* this */
            aload 2 /* write */
            iconst_0
            invokevirtual io.netty.channel.PendingWriteQueue.recycle:(Lio/netty/channel/PendingWriteQueue$PendingWrite;Z)V
        13: .line 182
            aload 4 /* promise */
            aload 1 /* cause */
            invokestatic io.netty.channel.PendingWriteQueue.safeFail:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        14: .line 183
            aload 3 /* next */
            astore 2 /* write */
        end local 4 // io.netty.channel.ChannelPromise promise
        end local 3 // io.netty.channel.PendingWriteQueue$PendingWrite next
        15: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* write */
            ifnonnull 9
        16: .line 173
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 2 /* write */
      StackMap locals:
      StackMap stack:
        17: aload 2 /* write */
            ifnonnull 5
        end local 2 // io.netty.channel.PendingWriteQueue$PendingWrite write
        18: .line 186
            aload 0 /* this */
            invokevirtual io.netty.channel.PendingWriteQueue.assertEmpty:()V
        19: .line 187
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lio/netty/channel/PendingWriteQueue;
            0   20     1    cause  Ljava/lang/Throwable;
            4   18     2    write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
           10   15     3     next  Lio/netty/channel/PendingWriteQueue$PendingWrite;
           12   15     4  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
       Name  Flags
      cause  

  public void removeAndFail(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.netty.channel.PendingWriteQueue this
        start local 1 // java.lang.Throwable cause
         0: .line 194
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            ifnonnull 3
         2: .line 196
            new java.lang.NullPointerException
            dup
            ldc "cause"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 2 /* write */
        start local 2 // io.netty.channel.PendingWriteQueue$PendingWrite write
         4: .line 200
            aload 2 /* write */
            ifnonnull 6
         5: .line 201
            return
         6: .line 203
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 2 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.msg:Ljava/lang/Object;
            invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
         7: .line 204
            aload 2 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
            astore 3 /* promise */
        start local 3 // io.netty.channel.ChannelPromise promise
         8: .line 205
            aload 3 /* promise */
            aload 1 /* cause */
            invokestatic io.netty.channel.PendingWriteQueue.safeFail:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
         9: .line 206
            aload 0 /* this */
            aload 2 /* write */
            iconst_1
            invokevirtual io.netty.channel.PendingWriteQueue.recycle:(Lio/netty/channel/PendingWriteQueue$PendingWrite;Z)V
        10: .line 207
            return
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // io.netty.channel.PendingWriteQueue$PendingWrite write
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lio/netty/channel/PendingWriteQueue;
            0   11     1    cause  Ljava/lang/Throwable;
            4   11     2    write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
            8   11     3  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
       Name  Flags
      cause  

  private void assertEmpty();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 210
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            ifnonnull 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            ifnonnull 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.size:I
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 211
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/PendingWriteQueue;

  public io.netty.channel.ChannelFuture removeAndWrite();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 221
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 1 /* write */
        start local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
         2: .line 223
            aload 1 /* write */
            ifnonnull 4
         3: .line 224
            aconst_null
            areturn
         4: .line 226
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.msg:Ljava/lang/Object;
            astore 2 /* msg */
        start local 2 // java.lang.Object msg
         5: .line 227
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
            astore 3 /* promise */
        start local 3 // io.netty.channel.ChannelPromise promise
         6: .line 228
            aload 0 /* this */
            aload 1 /* write */
            iconst_1
            invokevirtual io.netty.channel.PendingWriteQueue.recycle:(Lio/netty/channel/PendingWriteQueue$PendingWrite;Z)V
         7: .line 229
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            aload 2 /* msg */
            aload 3 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.lang.Object msg
        end local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/netty/channel/PendingWriteQueue;
            2    8     1    write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
            5    8     2      msg  Ljava/lang/Object;
            6    8     3  promise  Lio/netty/channel/ChannelPromise;

  public io.netty.channel.ChannelPromise remove();
    descriptor: ()Lio/netty/channel/ChannelPromise;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 239
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 1 /* write */
        start local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
         2: .line 241
            aload 1 /* write */
            ifnonnull 4
         3: .line 242
            aconst_null
            areturn
         4: .line 244
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
            astore 2 /* promise */
        start local 2 // io.netty.channel.ChannelPromise promise
         5: .line 245
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.msg:Ljava/lang/Object;
            invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
         6: .line 246
            aload 0 /* this */
            aload 1 /* write */
            iconst_1
            invokevirtual io.netty.channel.PendingWriteQueue.recycle:(Lio/netty/channel/PendingWriteQueue$PendingWrite;Z)V
         7: .line 247
            aload 2 /* promise */
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/netty/channel/PendingWriteQueue;
            2    8     1    write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
            5    8     2  promise  Lio/netty/channel/ChannelPromise;

  public java.lang.Object current();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.PendingWriteQueue this
         0: .line 254
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 1 /* write */
        start local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
         2: .line 256
            aload 1 /* write */
            ifnonnull 4
         3: .line 257
            aconst_null
            areturn
         4: .line 259
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite
      StackMap stack:
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.msg:Ljava/lang/Object;
            areturn
        end local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/netty/channel/PendingWriteQueue;
            2    5     1  write  Lio/netty/channel/PendingWriteQueue$PendingWrite;

  private void recycle(io.netty.channel.PendingWriteQueue$PendingWrite, boolean);
    descriptor: (Lio/netty/channel/PendingWriteQueue$PendingWrite;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.netty.channel.PendingWriteQueue this
        start local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
        start local 2 // boolean update
         0: .line 263
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.next:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            astore 3 /* next */
        start local 3 // io.netty.channel.PendingWriteQueue$PendingWrite next
         1: .line 264
            aload 1 /* write */
            getfield io.netty.channel.PendingWriteQueue$PendingWrite.size:J
            lstore 4 /* writeSize */
        start local 4 // long writeSize
         2: .line 266
            iload 2 /* update */
            ifeq 13
         3: .line 267
            aload 3 /* next */
            ifnonnull 8
         4: .line 270
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            dup_x1
            putfield io.netty.channel.PendingWriteQueue.tail:Lio/netty/channel/PendingWriteQueue$PendingWrite;
            putfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
         5: .line 271
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.PendingWriteQueue.size:I
         6: .line 272
            aload 0 /* this */
            lconst_0
            putfield io.netty.channel.PendingWriteQueue.bytes:J
         7: .line 273
            goto 13
         8: .line 274
      StackMap locals: io.netty.channel.PendingWriteQueue$PendingWrite long
      StackMap stack:
            aload 0 /* this */
            aload 3 /* next */
            putfield io.netty.channel.PendingWriteQueue.head:Lio/netty/channel/PendingWriteQueue$PendingWrite;
         9: .line 275
            aload 0 /* this */
            dup
            getfield io.netty.channel.PendingWriteQueue.size:I
            iconst_1
            isub
            putfield io.netty.channel.PendingWriteQueue.size:I
        10: .line 276
            aload 0 /* this */
            dup
            getfield io.netty.channel.PendingWriteQueue.bytes:J
            lload 4 /* writeSize */
            lsub
            putfield io.netty.channel.PendingWriteQueue.bytes:J
        11: .line 277
            getstatic io.netty.channel.PendingWriteQueue.$assertionsDisabled:Z
            ifne 13
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.size:I
            ifle 12
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.bytes:J
            lconst_0
            lcmp
            ifge 13
      StackMap locals:
      StackMap stack:
        12: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 281
      StackMap locals:
      StackMap stack:
            aload 1 /* write */
            invokevirtual io.netty.channel.PendingWriteQueue$PendingWrite.recycle:()V
        14: .line 282
            aload 0 /* this */
            getfield io.netty.channel.PendingWriteQueue.tracker:Lio/netty/channel/PendingBytesTracker;
            lload 4 /* writeSize */
            invokevirtual io.netty.channel.PendingBytesTracker.decrementPendingOutboundBytes:(J)V
        15: .line 283
            return
        end local 4 // long writeSize
        end local 3 // io.netty.channel.PendingWriteQueue$PendingWrite next
        end local 2 // boolean update
        end local 1 // io.netty.channel.PendingWriteQueue$PendingWrite write
        end local 0 // io.netty.channel.PendingWriteQueue this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lio/netty/channel/PendingWriteQueue;
            0   16     1      write  Lio/netty/channel/PendingWriteQueue$PendingWrite;
            0   16     2     update  Z
            1   16     3       next  Lio/netty/channel/PendingWriteQueue$PendingWrite;
            2   16     4  writeSize  J
    MethodParameters:
        Name  Flags
      write   
      update  

  private static void safeFail(io.netty.channel.ChannelPromise, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.channel.ChannelPromise promise
        start local 1 // java.lang.Throwable cause
         0: .line 286
            aload 0 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifne 2
            aload 0 /* promise */
            aload 1 /* cause */
            invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
            ifne 2
         1: .line 287
            getstatic io.netty.channel.PendingWriteQueue.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to mark a promise as failure because it's done already: {}"
            aload 0 /* promise */
            aload 1 /* cause */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 289
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.ChannelPromise promise
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  promise  Lio/netty/channel/ChannelPromise;
            0    3     1    cause  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      promise  
      cause    
}
SourceFile: "PendingWriteQueue.java"
NestMembers:
  io.netty.channel.PendingWriteQueue$PendingWrite  io.netty.channel.PendingWriteQueue$PendingWrite$1
InnerClasses:
  final PendingWrite = io.netty.channel.PendingWriteQueue$PendingWrite of io.netty.channel.PendingWriteQueue