class io.netty.util.concurrent.SingleThreadEventExecutor$5 implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.netty.util.concurrent.SingleThreadEventExecutor$5
  super_class: java.lang.Object
{
  final io.netty.util.concurrent.SingleThreadEventExecutor this$0;
    descriptor: Lio/netty/util/concurrent/SingleThreadEventExecutor;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(io.netty.util.concurrent.SingleThreadEventExecutor);
    descriptor: (Lio/netty/util/concurrent/SingleThreadEventExecutor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.util.concurrent.SingleThreadEventExecutor$5 this
         0: .line 873
            aload 0 /* this */
            aload 1
            putfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.netty.util.concurrent.SingleThreadEventExecutor$5 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/util/concurrent/SingleThreadEventExecutor$5;
    MethodParameters:
        Name  Flags
      this$0  final

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // io.netty.util.concurrent.SingleThreadEventExecutor$5 this
         0: .line 876
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            putfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
         1: .line 877
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.interrupted:Z
            ifeq 3
         2: .line 878
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.thread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         3: .line 881
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* success */
        start local 1 // boolean success
         4: .line 882
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.updateLastExecutionTime:()V
         5: .line 884
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.run:()V
         6: .line 885
            iconst_1
            istore 1 /* success */
         7: .line 886
            goto 128
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int
      StackMap stack: java.lang.Throwable
         8: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         9: .line 887
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Unexpected exception from an event executor: "
            aload 2 /* t */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
        10: .line 890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
        11: .line 891
            iload 4 /* oldState */
            iconst_3
            if_icmpge 15
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
        12: .line 892
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iload 4 /* oldState */
            iconst_3
        13: .line 891
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
        14: .line 892
            ifeq 10
        end local 4 // int oldState
        15: .line 898
      StackMap locals:
      StackMap stack:
            iload 1 /* success */
            ifeq 20
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownStartTime:J
            lconst_0
            lcmp
            ifne 20
        16: .line 899
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
            new java.lang.StringBuilder
            dup
            ldc "Buggy "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc Lio/netty/util/concurrent/EventExecutor;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " implementation; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 900
            ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".confirmShutdown() must be called "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 901
            ldc "before run() implementation terminates."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 899
            invokeinterface io.netty.util.internal.logging.InternalLogger.error:(Ljava/lang/String;)V
        20: .line 907
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.confirmShutdown:()Z
            ifeq 20
        21: .line 911
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 4
        23: .line 913
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cleanup:()V
        24: .line 914
            goto 36
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
        25: astore 5
        26: .line 915
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
        27: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        28: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 34
        29: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
        30: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        31: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        32: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
        34: .line 923
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
        35: .line 924
            aload 5
            athrow
        36: .line 915
      StackMap locals:
      StackMap stack:
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
        37: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        38: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 44
        39: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
        40: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        41: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        42: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        43: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
        44: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
        45: .line 925
            aload 4
            athrow
        46: .line 913
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cleanup:()V
        47: .line 914
            goto 59
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 5
        49: .line 915
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
        50: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        51: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 57
        52: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
        53: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        54: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        55: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
        57: .line 923
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
        58: .line 924
            aload 5
            athrow
        59: .line 915
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int
      StackMap stack:
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
        60: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        61: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 67
        62: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
        63: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        64: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        65: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
        67: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
            goto 186
        68: .line 888
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        69: .line 890
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
        70: .line 891
            iload 4 /* oldState */
            iconst_3
            if_icmpge 74
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
        71: .line 892
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iload 4 /* oldState */
            iconst_3
        72: .line 891
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
        73: .line 892
            ifeq 69
        end local 4 // int oldState
        74: .line 898
      StackMap locals:
      StackMap stack:
            iload 1 /* success */
            ifeq 79
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownStartTime:J
            lconst_0
            lcmp
            ifne 79
        75: .line 899
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
            new java.lang.StringBuilder
            dup
            ldc "Buggy "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc Lio/netty/util/concurrent/EventExecutor;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " implementation; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        76: .line 900
            ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".confirmShutdown() must be called "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        77: .line 901
            ldc "before run() implementation terminates."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        78: .line 899
            invokeinterface io.netty.util.internal.logging.InternalLogger.error:(Ljava/lang/String;)V
        79: .line 907
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.confirmShutdown:()Z
            ifeq 79
        80: .line 911
            goto 105
      StackMap locals:
      StackMap stack: java.lang.Throwable
        81: astore 4
        82: .line 913
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cleanup:()V
        83: .line 914
            goto 95
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top java.lang.Throwable java.lang.Throwable
      StackMap stack: java.lang.Throwable
        84: astore 5
        85: .line 915
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
        86: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        87: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 93
        88: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
        89: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        90: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        91: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        92: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
        93: .line 923
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
        94: .line 924
            aload 5
            athrow
        95: .line 915
      StackMap locals:
      StackMap stack:
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
        96: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        97: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 103
        98: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
        99: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       100: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       101: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       102: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       103: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       104: .line 925
            aload 4
            athrow
       105: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cleanup:()V
       106: .line 914
            goto 118
      StackMap locals:
      StackMap stack: java.lang.Throwable
       107: astore 5
       108: .line 915
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
       109: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
       110: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 116
       111: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
       112: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       113: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       114: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       115: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       116: .line 923
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top java.lang.Throwable top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       117: .line 924
            aload 5
            athrow
       118: .line 915
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top java.lang.Throwable
      StackMap stack:
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
       119: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
       120: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 126
       121: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
       122: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       123: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       124: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       125: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       126: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       127: .line 926
            aload 3
            athrow
       128: .line 890
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
       129: .line 891
            iload 4 /* oldState */
            iconst_3
            if_icmpge 133
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
       130: .line 892
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iload 4 /* oldState */
            iconst_3
       131: .line 891
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
       132: .line 892
            ifeq 128
        end local 4 // int oldState
       133: .line 898
      StackMap locals:
      StackMap stack:
            iload 1 /* success */
            ifeq 138
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.gracefulShutdownStartTime:J
            lconst_0
            lcmp
            ifne 138
       134: .line 899
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
            new java.lang.StringBuilder
            dup
            ldc "Buggy "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc Lio/netty/util/concurrent/EventExecutor;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " implementation; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       135: .line 900
            ldc Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".confirmShutdown() must be called "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       136: .line 901
            ldc "before run() implementation terminates."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       137: .line 899
            invokeinterface io.netty.util.internal.logging.InternalLogger.error:(Ljava/lang/String;)V
       138: .line 907
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.confirmShutdown:()Z
            ifeq 138
       139: .line 911
            goto 164
      StackMap locals:
      StackMap stack: java.lang.Throwable
       140: astore 4
       141: .line 913
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cleanup:()V
       142: .line 914
            goto 154
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
       143: astore 5
       144: .line 915
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
       145: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
       146: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 152
       147: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
       148: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       149: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       150: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       151: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       152: .line 923
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       153: .line 924
            aload 5
            athrow
       154: .line 915
      StackMap locals:
      StackMap stack:
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
       155: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
       156: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 162
       157: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
       158: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       159: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       160: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       161: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       162: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       163: .line 925
            aload 4
            athrow
       164: .line 913
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            invokevirtual io.netty.util.concurrent.SingleThreadEventExecutor.cleanup:()V
       165: .line 914
            goto 177
      StackMap locals:
      StackMap stack: java.lang.Throwable
       166: astore 5
       167: .line 915
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
       168: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
       169: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 175
       170: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
       171: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       172: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       173: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       174: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       175: .line 923
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       176: .line 924
            aload 5
            athrow
       177: .line 915
      StackMap locals: io.netty.util.concurrent.SingleThreadEventExecutor$5 int
      StackMap stack:
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            iconst_5
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
       178: .line 916
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.threadLock:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
       179: .line 917
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 185
       180: .line 918
            getstatic io.netty.util.concurrent.SingleThreadEventExecutor.logger:Lio/netty/util/internal/logging/InternalLogger;
       181: .line 919
            new java.lang.StringBuilder
            dup
            ldc "An event executor terminated with non-empty task queue ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       182: .line 920
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.taskQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
       183: .line 919
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       184: .line 918
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
       185: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.util.concurrent.SingleThreadEventExecutor$5.this$0:Lio/netty/util/concurrent/SingleThreadEventExecutor;
            getfield io.netty.util.concurrent.SingleThreadEventExecutor.terminationFuture:Lio/netty/util/concurrent/Promise;
            aconst_null
            invokeinterface io.netty.util.concurrent.Promise.setSuccess:(Ljava/lang/Object;)Lio/netty/util/concurrent/Promise;
            pop
       186: .line 927
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean success
        end local 0 // io.netty.util.concurrent.SingleThreadEventExecutor$5 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0  187     0      this  Lio/netty/util/concurrent/SingleThreadEventExecutor$5;
            4  187     1   success  Z
            9   10     2         t  Ljava/lang/Throwable;
           11   15     4  oldState  I
           70   74     4  oldState  I
          129  133     4  oldState  I
      Exception table:
        from    to  target  type
           5     7       8  Class java.lang.Throwable
          20    22      22  any
          23    25      25  any
          46    48      48  any
           5    10      68  any
          79    81      81  any
          82    84      84  any
         105   107     107  any
         138   140     140  any
         141   143     143  any
         164   166     166  any
}
SourceFile: "SingleThreadEventExecutor.java"
EnclosingMethod: io.netty.util.concurrent.SingleThreadEventExecutor.doStartThread:()V
NestHost: io.netty.util.concurrent.SingleThreadEventExecutor
InnerClasses:
  io.netty.util.concurrent.SingleThreadEventExecutor$5