final class io.netty.channel.epoll.EpollEventLoop extends io.netty.channel.SingleThreadEventLoop
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.netty.channel.epoll.EpollEventLoop
  super_class: io.netty.channel.SingleThreadEventLoop
{
  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 java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.netty.channel.epoll.EpollEventLoop> WAKEN_UP_UPDATER;
    descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/netty/channel/epoll/EpollEventLoop;>;

  private final io.netty.channel.unix.FileDescriptor epollFd;
    descriptor: Lio/netty/channel/unix/FileDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.unix.FileDescriptor eventFd;
    descriptor: Lio/netty/channel/unix/FileDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.unix.FileDescriptor timerFd;
    descriptor: Lio/netty/channel/unix/FileDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.util.collection.IntObjectMap<io.netty.channel.epoll.AbstractEpollChannel> channels;
    descriptor: Lio/netty/util/collection/IntObjectMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/netty/util/collection/IntObjectMap<Lio/netty/channel/epoll/AbstractEpollChannel;>;

  private final boolean allowGrowing;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.epoll.EpollEventArray events;
    descriptor: Lio/netty/channel/epoll/EpollEventArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.unix.IovArray iovArray;
    descriptor: Lio/netty/channel/unix/IovArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final io.netty.util.IntSupplier selectNowSupplier;
    descriptor: Lio/netty/util/IntSupplier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.Callable<java.lang.Integer> pendingTasksCallable;
    descriptor: Ljava/util/concurrent/Callable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/Callable<Ljava/lang/Integer;>;

  private volatile int wakenUp;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int ioRatio;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final long MAX_SCHEDULED_DAYS;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  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=3, locals=0, args_size=0
         0: .line 48
            ldc Lio/netty/channel/epoll/EpollEventLoop;
            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.epoll.EpollEventLoop.$assertionsDisabled:Z
         3: .line 49
            ldc Lio/netty/channel/epoll/EpollEventLoop;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.channel.epoll.EpollEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
         4: .line 51
            ldc Lio/netty/channel/epoll/EpollEventLoop;
            ldc "wakenUp"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         5: .line 50
            putstatic io.netty.channel.epoll.EpollEventLoop.WAKEN_UP_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         6: .line 56
            invokestatic io.netty.channel.epoll.Epoll.ensureAvailability:()V
         7: .line 83
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            ldc 999999999
            invokevirtual java.util.concurrent.TimeUnit.toDays:(J)J
            putstatic io.netty.channel.epoll.EpollEventLoop.MAX_SCHEDULED_DAYS:J
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.netty.channel.EventLoopGroup, java.util.concurrent.Executor, int, io.netty.channel.SelectStrategy, io.netty.util.concurrent.RejectedExecutionHandler);
    descriptor: (Lio/netty/channel/EventLoopGroup;Ljava/util/concurrent/Executor;ILio/netty/channel/SelectStrategy;Lio/netty/util/concurrent/RejectedExecutionHandler;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=6
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // io.netty.channel.EventLoopGroup parent
        start local 2 // java.util.concurrent.Executor executor
        start local 3 // int maxEvents
        start local 4 // io.netty.channel.SelectStrategy strategy
        start local 5 // io.netty.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler
         0: .line 87
            aload 0 /* this */
            aload 1 /* parent */
            aload 2 /* executor */
            iconst_0
            getstatic io.netty.channel.epoll.EpollEventLoop.DEFAULT_MAX_PENDING_TASKS:I
            aload 5 /* rejectedExecutionHandler */
            invokespecial io.netty.channel.SingleThreadEventLoop.<init>:(Lio/netty/channel/EventLoopGroup;Ljava/util/concurrent/Executor;ZILio/netty/util/concurrent/RejectedExecutionHandler;)V
         1: .line 62
            aload 0 /* this */
            new io.netty.util.collection.IntObjectHashMap
            dup
            sipush 4096
            invokespecial io.netty.util.collection.IntObjectHashMap.<init>:(I)V
            putfield io.netty.channel.epoll.EpollEventLoop.channels:Lio/netty/util/collection/IntObjectMap;
         2: .line 65
            aload 0 /* this */
            new io.netty.channel.unix.IovArray
            dup
            invokespecial io.netty.channel.unix.IovArray.<init>:()V
            putfield io.netty.channel.epoll.EpollEventLoop.iovArray:Lio/netty/channel/unix/IovArray;
         3: .line 67
            aload 0 /* this */
            new io.netty.channel.epoll.EpollEventLoop$1
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.epoll.EpollEventLoop$1.<init>:(Lio/netty/channel/epoll/EpollEventLoop;)V
            putfield io.netty.channel.epoll.EpollEventLoop.selectNowSupplier:Lio/netty/util/IntSupplier;
         4: .line 73
            aload 0 /* this */
            new io.netty.channel.epoll.EpollEventLoop$2
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.epoll.EpollEventLoop$2.<init>:(Lio/netty/channel/epoll/EpollEventLoop;)V
            putfield io.netty.channel.epoll.EpollEventLoop.pendingTasksCallable:Ljava/util/concurrent/Callable;
         5: .line 80
            aload 0 /* this */
            bipush 50
            putfield io.netty.channel.epoll.EpollEventLoop.ioRatio:I
         6: .line 88
            aload 0 /* this */
            aload 4 /* strategy */
            ldc "strategy"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast io.netty.channel.SelectStrategy
            putfield io.netty.channel.epoll.EpollEventLoop.selectStrategy:Lio/netty/channel/SelectStrategy;
         7: .line 89
            iload 3 /* maxEvents */
            ifne 11
         8: .line 90
            aload 0 /* this */
            iconst_1
            putfield io.netty.channel.epoll.EpollEventLoop.allowGrowing:Z
         9: .line 91
            aload 0 /* this */
            new io.netty.channel.epoll.EpollEventArray
            dup
            sipush 4096
            invokespecial io.netty.channel.epoll.EpollEventArray.<init>:(I)V
            putfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
        10: .line 92
            goto 13
        11: .line 93
      StackMap locals: io.netty.channel.epoll.EpollEventLoop io.netty.channel.EventLoopGroup java.util.concurrent.Executor int io.netty.channel.SelectStrategy io.netty.util.concurrent.RejectedExecutionHandler
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.epoll.EpollEventLoop.allowGrowing:Z
        12: .line 94
            aload 0 /* this */
            new io.netty.channel.epoll.EpollEventArray
            dup
            iload 3 /* maxEvents */
            invokespecial io.netty.channel.epoll.EpollEventArray.<init>:(I)V
            putfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
        13: .line 96
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* success */
        start local 6 // boolean success
        14: .line 97
            aconst_null
            astore 7 /* epollFd */
        start local 7 // io.netty.channel.unix.FileDescriptor epollFd
        15: .line 98
            aconst_null
            astore 8 /* eventFd */
        start local 8 // io.netty.channel.unix.FileDescriptor eventFd
        16: .line 99
            aconst_null
            astore 9 /* timerFd */
        start local 9 // io.netty.channel.unix.FileDescriptor timerFd
        17: .line 101
            aload 0 /* this */
            invokestatic io.netty.channel.epoll.Native.newEpollCreate:()Lio/netty/channel/unix/FileDescriptor;
            dup
            astore 7 /* epollFd */
            putfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
        18: .line 102
            aload 0 /* this */
            invokestatic io.netty.channel.epoll.Native.newEventFd:()Lio/netty/channel/unix/FileDescriptor;
            dup
            astore 8 /* eventFd */
            putfield io.netty.channel.epoll.EpollEventLoop.eventFd:Lio/netty/channel/unix/FileDescriptor;
        19: .line 104
            aload 7 /* epollFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            aload 8 /* eventFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            getstatic io.netty.channel.epoll.Native.EPOLLIN:I
            invokestatic io.netty.channel.epoll.Native.epollCtlAdd:(III)V
        20: .line 105
            goto 23
      StackMap locals: io.netty.channel.epoll.EpollEventLoop io.netty.channel.EventLoopGroup java.util.concurrent.Executor int io.netty.channel.SelectStrategy io.netty.util.concurrent.RejectedExecutionHandler int io.netty.channel.unix.FileDescriptor io.netty.channel.unix.FileDescriptor io.netty.channel.unix.FileDescriptor
      StackMap stack: java.io.IOException
        21: astore 10 /* e */
        start local 10 // java.io.IOException e
        22: .line 106
            new java.lang.IllegalStateException
            dup
            ldc "Unable to add eventFd filedescriptor to epoll"
            aload 10 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.io.IOException e
        23: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic io.netty.channel.epoll.Native.newTimerFd:()Lio/netty/channel/unix/FileDescriptor;
            dup
            astore 9 /* timerFd */
            putfield io.netty.channel.epoll.EpollEventLoop.timerFd:Lio/netty/channel/unix/FileDescriptor;
        24: .line 110
            aload 7 /* epollFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            aload 9 /* timerFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            getstatic io.netty.channel.epoll.Native.EPOLLIN:I
            getstatic io.netty.channel.epoll.Native.EPOLLET:I
            ior
            invokestatic io.netty.channel.epoll.Native.epollCtlAdd:(III)V
        25: .line 111
            goto 28
      StackMap locals:
      StackMap stack: java.io.IOException
        26: astore 10 /* e */
        start local 10 // java.io.IOException e
        27: .line 112
            new java.lang.IllegalStateException
            dup
            ldc "Unable to add timerFd filedescriptor to epoll"
            aload 10 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.io.IOException e
        28: .line 114
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* success */
        29: .line 115
            goto 45
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 11
        31: .line 116
            iload 6 /* success */
            ifne 44
        32: .line 117
            aload 7 /* epollFd */
            ifnull 36
        33: .line 119
            aload 7 /* epollFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
        34: .line 120
            goto 36
      StackMap locals: io.netty.channel.epoll.EpollEventLoop io.netty.channel.EventLoopGroup java.util.concurrent.Executor int io.netty.channel.SelectStrategy io.netty.util.concurrent.RejectedExecutionHandler int io.netty.channel.unix.FileDescriptor io.netty.channel.unix.FileDescriptor io.netty.channel.unix.FileDescriptor top java.lang.Throwable
      StackMap stack: java.lang.Exception
        35: pop
        36: .line 124
      StackMap locals:
      StackMap stack:
            aload 8 /* eventFd */
            ifnull 40
        37: .line 126
            aload 8 /* eventFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
        38: .line 127
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Exception
        39: pop
        40: .line 131
      StackMap locals:
      StackMap stack:
            aload 9 /* timerFd */
            ifnull 44
        41: .line 133
            aload 9 /* timerFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
        42: .line 134
            goto 44
      StackMap locals:
      StackMap stack: java.lang.Exception
        43: pop
        44: .line 139
      StackMap locals:
      StackMap stack:
            aload 11
            athrow
        45: .line 116
      StackMap locals: io.netty.channel.epoll.EpollEventLoop io.netty.channel.EventLoopGroup java.util.concurrent.Executor int io.netty.channel.SelectStrategy io.netty.util.concurrent.RejectedExecutionHandler int io.netty.channel.unix.FileDescriptor io.netty.channel.unix.FileDescriptor io.netty.channel.unix.FileDescriptor
      StackMap stack:
            iload 6 /* success */
            ifne 58
        46: .line 117
            aload 7 /* epollFd */
            ifnull 50
        47: .line 119
            aload 7 /* epollFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
        48: .line 120
            goto 50
      StackMap locals:
      StackMap stack: java.lang.Exception
        49: pop
        50: .line 124
      StackMap locals:
      StackMap stack:
            aload 8 /* eventFd */
            ifnull 54
        51: .line 126
            aload 8 /* eventFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
        52: .line 127
            goto 54
      StackMap locals:
      StackMap stack: java.lang.Exception
        53: pop
        54: .line 131
      StackMap locals:
      StackMap stack:
            aload 9 /* timerFd */
            ifnull 58
        55: .line 133
            aload 9 /* timerFd */
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
        56: .line 134
            goto 58
      StackMap locals:
      StackMap stack: java.lang.Exception
        57: pop
        58: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 9 // io.netty.channel.unix.FileDescriptor timerFd
        end local 8 // io.netty.channel.unix.FileDescriptor eventFd
        end local 7 // io.netty.channel.unix.FileDescriptor epollFd
        end local 6 // boolean success
        end local 5 // io.netty.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler
        end local 4 // io.netty.channel.SelectStrategy strategy
        end local 3 // int maxEvents
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // io.netty.channel.EventLoopGroup parent
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   59     0                      this  Lio/netty/channel/epoll/EpollEventLoop;
            0   59     1                    parent  Lio/netty/channel/EventLoopGroup;
            0   59     2                  executor  Ljava/util/concurrent/Executor;
            0   59     3                 maxEvents  I
            0   59     4                  strategy  Lio/netty/channel/SelectStrategy;
            0   59     5  rejectedExecutionHandler  Lio/netty/util/concurrent/RejectedExecutionHandler;
           14   59     6                   success  Z
           15   59     7                   epollFd  Lio/netty/channel/unix/FileDescriptor;
           16   59     8                   eventFd  Lio/netty/channel/unix/FileDescriptor;
           17   59     9                   timerFd  Lio/netty/channel/unix/FileDescriptor;
           22   23    10                         e  Ljava/io/IOException;
           27   28    10                         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          19    20      21  Class java.io.IOException
          24    25      26  Class java.io.IOException
          17    30      30  any
          33    34      35  Class java.lang.Exception
          37    38      39  Class java.lang.Exception
          41    42      43  Class java.lang.Exception
          47    48      49  Class java.lang.Exception
          51    52      53  Class java.lang.Exception
          55    56      57  Class java.lang.Exception
    MethodParameters:
                          Name  Flags
      parent                    
      executor                  
      maxEvents                 
      strategy                  
      rejectedExecutionHandler  

  io.netty.channel.unix.IovArray cleanArray();
    descriptor: ()Lio/netty/channel/unix/IovArray;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 146
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.iovArray:Lio/netty/channel/unix/IovArray;
            invokevirtual io.netty.channel.unix.IovArray.clear:()V
         1: .line 147
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.iovArray:Lio/netty/channel/unix/IovArray;
            areturn
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/epoll/EpollEventLoop;

  protected void wakeup(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // boolean inEventLoop
         0: .line 152
            iload 1 /* inEventLoop */
            ifne 2
            getstatic io.netty.channel.epoll.EpollEventLoop.WAKEN_UP_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 2
         1: .line 154
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.eventFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            lconst_1
            invokestatic io.netty.channel.epoll.Native.eventFdWrite:(IJ)V
         2: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean inEventLoop
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/netty/channel/epoll/EpollEventLoop;
            0    3     1  inEventLoop  Z
    MethodParameters:
             Name  Flags
      inEventLoop  

  void add(io.netty.channel.epoll.AbstractEpollChannel);
    descriptor: (Lio/netty/channel/epoll/AbstractEpollChannel;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // io.netty.channel.epoll.AbstractEpollChannel ch
         0: .line 162
            getstatic io.netty.channel.epoll.EpollEventLoop.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 163
      StackMap locals:
      StackMap stack:
            aload 1 /* ch */
            getfield io.netty.channel.epoll.AbstractEpollChannel.socket:Lio/netty/channel/epoll/LinuxSocket;
            invokevirtual io.netty.channel.epoll.LinuxSocket.intValue:()I
            istore 2 /* fd */
        start local 2 // int fd
         2: .line 164
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            iload 2 /* fd */
            aload 1 /* ch */
            getfield io.netty.channel.epoll.AbstractEpollChannel.flags:I
            invokestatic io.netty.channel.epoll.Native.epollCtlAdd:(III)V
         3: .line 165
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.channels:Lio/netty/util/collection/IntObjectMap;
            iload 2 /* fd */
            aload 1 /* ch */
            invokeinterface io.netty.util.collection.IntObjectMap.put:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 166
            return
        end local 2 // int fd
        end local 1 // io.netty.channel.epoll.AbstractEpollChannel ch
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/epoll/EpollEventLoop;
            0    5     1    ch  Lio/netty/channel/epoll/AbstractEpollChannel;
            2    5     2    fd  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ch    

  void modify(io.netty.channel.epoll.AbstractEpollChannel);
    descriptor: (Lio/netty/channel/epoll/AbstractEpollChannel;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // io.netty.channel.epoll.AbstractEpollChannel ch
         0: .line 172
            getstatic io.netty.channel.epoll.EpollEventLoop.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            aload 1 /* ch */
            getfield io.netty.channel.epoll.AbstractEpollChannel.socket:Lio/netty/channel/epoll/LinuxSocket;
            invokevirtual io.netty.channel.epoll.LinuxSocket.intValue:()I
            aload 1 /* ch */
            getfield io.netty.channel.epoll.AbstractEpollChannel.flags:I
            invokestatic io.netty.channel.epoll.Native.epollCtlMod:(III)V
         2: .line 174
            return
        end local 1 // io.netty.channel.epoll.AbstractEpollChannel ch
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/epoll/EpollEventLoop;
            0    3     1    ch  Lio/netty/channel/epoll/AbstractEpollChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ch    

  void remove(io.netty.channel.epoll.AbstractEpollChannel);
    descriptor: (Lio/netty/channel/epoll/AbstractEpollChannel;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // io.netty.channel.epoll.AbstractEpollChannel ch
         0: .line 180
            getstatic io.netty.channel.epoll.EpollEventLoop.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 182
      StackMap locals:
      StackMap stack:
            aload 1 /* ch */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel.isOpen:()Z
            ifeq 5
         2: .line 183
            aload 1 /* ch */
            getfield io.netty.channel.epoll.AbstractEpollChannel.socket:Lio/netty/channel/epoll/LinuxSocket;
            invokevirtual io.netty.channel.epoll.LinuxSocket.intValue:()I
            istore 2 /* fd */
        start local 2 // int fd
         3: .line 184
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.channels:Lio/netty/util/collection/IntObjectMap;
            iload 2 /* fd */
            invokeinterface io.netty.util.collection.IntObjectMap.remove:(I)Ljava/lang/Object;
            ifnull 5
         4: .line 187
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            aload 1 /* ch */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel.fd:()Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            invokestatic io.netty.channel.epoll.Native.epollCtlDel:(II)V
        end local 2 // int fd
         5: .line 190
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.epoll.AbstractEpollChannel ch
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/netty/channel/epoll/EpollEventLoop;
            0    6     1    ch  Lio/netty/channel/epoll/AbstractEpollChannel;
            3    5     2    fd  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ch    

  protected java.util.Queue<java.lang.Runnable> newTaskQueue(int);
    descriptor: (I)Ljava/util/Queue;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // int maxPendingTasks
         0: .line 195
            iload 1 /* maxPendingTasks */
            ldc 2147483647
            if_icmpne 1
            invokestatic io.netty.util.internal.PlatformDependent.newMpscQueue:()Ljava/util/Queue;
            goto 2
         1: .line 196
      StackMap locals:
      StackMap stack:
            iload 1 /* maxPendingTasks */
            invokestatic io.netty.util.internal.PlatformDependent.newMpscQueue:(I)Ljava/util/Queue;
         2: .line 195
      StackMap locals:
      StackMap stack: java.util.Queue
            areturn
        end local 1 // int maxPendingTasks
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lio/netty/channel/epoll/EpollEventLoop;
            0    3     1  maxPendingTasks  I
    Signature: (I)Ljava/util/Queue<Ljava/lang/Runnable;>;
    MethodParameters:
                 Name  Flags
      maxPendingTasks  

  public int pendingTasks();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 204
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.inEventLoop:()Z
            ifeq 2
         1: .line 205
            aload 0 /* this */
            invokespecial io.netty.channel.SingleThreadEventLoop.pendingTasks:()I
            ireturn
         2: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.pendingTasksCallable:Ljava/util/concurrent/Callable;
            invokevirtual io.netty.channel.epoll.EpollEventLoop.submit:(Ljava/util/concurrent/Callable;)Lio/netty/util/concurrent/Future;
            invokeinterface io.netty.util.concurrent.Future.syncUninterruptibly:()Lio/netty/util/concurrent/Future;
            invokeinterface io.netty.util.concurrent.Future.getNow:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/epoll/EpollEventLoop;

  public int getIoRatio();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 214
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.ioRatio:I
            ireturn
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/epoll/EpollEventLoop;

  public void setIoRatio(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // int ioRatio
         0: .line 222
            iload 1 /* ioRatio */
            ifle 1
            iload 1 /* ioRatio */
            bipush 100
            if_icmple 2
         1: .line 223
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ioRatio: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* ioRatio */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " (expected: 0 < ioRatio <= 100)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* ioRatio */
            putfield io.netty.channel.epoll.EpollEventLoop.ioRatio:I
         3: .line 226
            return
        end local 1 // int ioRatio
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/netty/channel/epoll/EpollEventLoop;
            0    4     1  ioRatio  I
    MethodParameters:
         Name  Flags
      ioRatio  

  private int epollWait(boolean);
    descriptor: (Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=5, args_size=2
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // boolean oldWakeup
         0: .line 233
            iload 1 /* oldWakeup */
            ifeq 2
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.hasTasks:()Z
            ifeq 2
         1: .line 234
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.epollWaitNow:()I
            ireturn
         2: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.lang.System.nanoTime:()J
            invokevirtual io.netty.channel.epoll.EpollEventLoop.delayNanos:(J)J
            lstore 2 /* totalDelay */
        start local 2 // long totalDelay
         3: .line 238
            lload 2 /* totalDelay */
            ldc 1000000000
            ldiv
            ldc 2147483647
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 4 /* delaySeconds */
        start local 4 // int delaySeconds
         4: .line 239
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.timerFd:Lio/netty/channel/unix/FileDescriptor;
            iload 4 /* delaySeconds */
         5: .line 240
            lload 2 /* totalDelay */
            iload 4 /* delaySeconds */
            i2l
            ldc 1000000000
            lmul
            lsub
            ldc 2147483647
            invokestatic java.lang.Math.min:(JJ)J
            l2i
         6: .line 239
            invokestatic io.netty.channel.epoll.Native.epollWait:(Lio/netty/channel/unix/FileDescriptor;Lio/netty/channel/epoll/EpollEventArray;Lio/netty/channel/unix/FileDescriptor;II)I
            ireturn
        end local 4 // int delaySeconds
        end local 2 // long totalDelay
        end local 1 // boolean oldWakeup
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lio/netty/channel/epoll/EpollEventLoop;
            0    7     1     oldWakeup  Z
            3    7     2    totalDelay  J
            4    7     4  delaySeconds  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      oldWakeup  

  private int epollWaitNow();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 244
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.timerFd:Lio/netty/channel/unix/FileDescriptor;
            iconst_0
            iconst_0
            invokestatic io.netty.channel.epoll.Native.epollWait:(Lio/netty/channel/unix/FileDescriptor;Lio/netty/channel/epoll/EpollEventArray;Lio/netty/channel/unix/FileDescriptor;II)I
            ireturn
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/epoll/EpollEventLoop;
    Exceptions:
      throws java.io.IOException

  protected void run();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.selectStrategy:Lio/netty/channel/SelectStrategy;
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.selectNowSupplier:Lio/netty/util/IntSupplier;
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.hasTasks:()Z
            invokeinterface io.netty.channel.SelectStrategy.calculateStrategy:(Lio/netty/util/IntSupplier;Z)I
            istore 1 /* strategy */
        start local 1 // int strategy
         1: .line 252
            iload 1 /* strategy */
            tableswitch { // -2 - -1
                   -2: 2
                   -1: 3
              default: 8
          }
         2: .line 254
      StackMap locals: int
      StackMap stack:
            goto 0
         3: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.netty.channel.epoll.EpollEventLoop.WAKEN_UP_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.getAndSet:(Ljava/lang/Object;I)I
            iconst_1
            if_icmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: io.netty.channel.epoll.EpollEventLoop
         4: iconst_0
      StackMap locals: io.netty.channel.epoll.EpollEventLoop int
      StackMap stack: io.netty.channel.epoll.EpollEventLoop int
         5: invokevirtual io.netty.channel.epoll.EpollEventLoop.epollWait:(Z)I
            istore 1 /* strategy */
         6: .line 286
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.wakenUp:I
            iconst_1
            if_icmpne 8
         7: .line 287
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.eventFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            lconst_1
            invokestatic io.netty.channel.epoll.Native.eventFdWrite:(IJ)V
         8: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.ioRatio:I
            istore 2 /* ioRatio */
        start local 2 // int ioRatio
         9: .line 294
            iload 2 /* ioRatio */
            bipush 100
            if_icmpne 18
        10: .line 296
            iload 1 /* strategy */
            ifle 16
        11: .line 297
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            iload 1 /* strategy */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.processReady:(Lio/netty/channel/epoll/EpollEventArray;I)V
        12: .line 299
            goto 16
      StackMap locals: io.netty.channel.epoll.EpollEventLoop int int
      StackMap stack: java.lang.Throwable
        13: astore 3
        14: .line 301
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.runAllTasks:()Z
            pop
        15: .line 302
            aload 3
            athrow
        16: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.runAllTasks:()Z
            pop
        17: .line 303
            goto 28
        18: .line 304
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 3 /* ioStartTime */
        start local 3 // long ioStartTime
        19: .line 307
            iload 1 /* strategy */
            ifle 26
        20: .line 308
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            iload 1 /* strategy */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.processReady:(Lio/netty/channel/epoll/EpollEventArray;I)V
        21: .line 310
            goto 26
      StackMap locals: io.netty.channel.epoll.EpollEventLoop int int long
      StackMap stack: java.lang.Throwable
        22: astore 5
        23: .line 312
            invokestatic java.lang.System.nanoTime:()J
            lload 3 /* ioStartTime */
            lsub
            lstore 6 /* ioTime */
        start local 6 // long ioTime
        24: .line 313
            aload 0 /* this */
            lload 6 /* ioTime */
            bipush 100
            iload 2 /* ioRatio */
            isub
            i2l
            lmul
            iload 2 /* ioRatio */
            i2l
            ldiv
            invokevirtual io.netty.channel.epoll.EpollEventLoop.runAllTasks:(J)Z
            pop
        end local 6 // long ioTime
        25: .line 314
            aload 5
            athrow
        26: .line 312
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 3 /* ioStartTime */
            lsub
            lstore 6 /* ioTime */
        start local 6 // long ioTime
        27: .line 313
            aload 0 /* this */
            lload 6 /* ioTime */
            bipush 100
            iload 2 /* ioRatio */
            isub
            i2l
            lmul
            iload 2 /* ioRatio */
            i2l
            ldiv
            invokevirtual io.netty.channel.epoll.EpollEventLoop.runAllTasks:(J)Z
            pop
        end local 6 // long ioTime
        end local 3 // long ioStartTime
        28: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.allowGrowing:Z
            ifeq 33
            iload 1 /* strategy */
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            invokevirtual io.netty.channel.epoll.EpollEventArray.length:()I
            if_icmpne 33
        29: .line 318
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            invokevirtual io.netty.channel.epoll.EpollEventArray.increase:()V
        end local 2 // int ioRatio
        end local 1 // int strategy
        30: .line 320
            goto 33
      StackMap locals: io.netty.channel.epoll.EpollEventLoop
      StackMap stack: java.lang.Throwable
        31: astore 1 /* t */
        start local 1 // java.lang.Throwable t
        32: .line 321
            aload 1 /* t */
            invokestatic io.netty.channel.epoll.EpollEventLoop.handleLoopException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        33: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.isShuttingDown:()Z
            ifeq 0
        34: .line 326
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.closeAll:()V
        35: .line 327
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.confirmShutdown:()Z
            ifeq 0
        36: .line 328
            goto 40
        37: .line 331
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
        38: .line 332
            aload 1 /* t */
            invokestatic io.netty.channel.epoll.EpollEventLoop.handleLoopException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        39: .line 249
            goto 0
        40: .line 335
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   41     0         this  Lio/netty/channel/epoll/EpollEventLoop;
            1   30     1     strategy  I
            9   30     2      ioRatio  I
           19   28     3  ioStartTime  J
           24   25     6       ioTime  J
           27   28     6       ioTime  J
           32   33     1            t  Ljava/lang/Throwable;
           38   39     1            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          10    13      13  any
          19    22      22  any
           0     2      31  Class java.lang.Throwable
           3    30      31  Class java.lang.Throwable
          33    36      37  Class java.lang.Throwable

  private static void handleLoopException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 338
            getstatic io.netty.channel.epoll.EpollEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Unexpected exception in the selector loop."
            aload 0 /* t */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 343
            ldc 1000
            invokestatic java.lang.Thread.sleep:(J)V
         2: .line 344
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         3: pop
         4: .line 347
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException
    MethodParameters:
      Name  Flags
      t     

  private void closeAll();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 351
            aload 0 /* this */
            invokevirtual io.netty.channel.epoll.EpollEventLoop.epollWaitNow:()I
            pop
         1: .line 352
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 357
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.channels:Lio/netty/util/collection/IntObjectMap;
            invokeinterface io.netty.util.collection.IntObjectMap.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* array */
        start local 1 // java.util.Collection array
         4: .line 359
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.channels:Lio/netty/util/collection/IntObjectMap;
            invokeinterface io.netty.util.collection.IntObjectMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: io.netty.channel.epoll.EpollEventLoop java.util.Collection top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.netty.channel.epoll.AbstractEpollChannel
            astore 2 /* channel */
        start local 2 // io.netty.channel.epoll.AbstractEpollChannel channel
         6: .line 360
            aload 1 /* array */
            aload 2 /* channel */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // io.netty.channel.epoll.AbstractEpollChannel channel
         7: .line 359
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 363
            aload 1 /* array */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.netty.channel.epoll.AbstractEpollChannel
            astore 2 /* ch */
        start local 2 // io.netty.channel.epoll.AbstractEpollChannel ch
        10: .line 364
            aload 2 /* ch */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            aload 2 /* ch */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokeinterface io.netty.channel.Channel$Unsafe.close:(Lio/netty/channel/ChannelPromise;)V
        end local 2 // io.netty.channel.epoll.AbstractEpollChannel ch
        11: .line 363
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 366
            return
        end local 1 // java.util.Collection array
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lio/netty/channel/epoll/EpollEventLoop;
            4   13     1    array  Ljava/util/Collection<Lio/netty/channel/epoll/AbstractEpollChannel;>;
            6    7     2  channel  Lio/netty/channel/epoll/AbstractEpollChannel;
           10   11     2       ch  Lio/netty/channel/epoll/AbstractEpollChannel;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  private void processReady(io.netty.channel.epoll.EpollEventArray, int);
    descriptor: (Lio/netty/channel/epoll/EpollEventArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // io.netty.channel.epoll.EpollEventArray events
        start local 2 // int ready
         0: .line 369
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 24
         2: .line 370
      StackMap locals: int
      StackMap stack:
            aload 1 /* events */
            iload 3 /* i */
            invokevirtual io.netty.channel.epoll.EpollEventArray.fd:(I)I
            istore 4 /* fd */
        start local 4 // int fd
         3: .line 371
            iload 4 /* fd */
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.eventFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            if_icmpne 6
         4: .line 373
            iload 4 /* fd */
            invokestatic io.netty.channel.epoll.Native.eventFdRead:(I)V
         5: .line 374
            goto 23
      StackMap locals: int
      StackMap stack:
         6: iload 4 /* fd */
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.timerFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            if_icmpne 9
         7: .line 376
            iload 4 /* fd */
            invokestatic io.netty.channel.epoll.Native.timerFdRead:(I)V
         8: .line 377
            goto 23
         9: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* events */
            iload 3 /* i */
            invokevirtual io.netty.channel.epoll.EpollEventArray.events:(I)I
            i2l
            lstore 5 /* ev */
        start local 5 // long ev
        10: .line 380
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.channels:Lio/netty/util/collection/IntObjectMap;
            iload 4 /* fd */
            invokeinterface io.netty.util.collection.IntObjectMap.get:(I)Ljava/lang/Object;
            checkcast io.netty.channel.epoll.AbstractEpollChannel
            astore 7 /* ch */
        start local 7 // io.netty.channel.epoll.AbstractEpollChannel ch
        11: .line 381
            aload 7 /* ch */
            ifnull 20
        12: .line 386
            aload 7 /* ch */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            checkcast io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe
            astore 8 /* unsafe */
        start local 8 // io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe unsafe
        13: .line 396
            lload 5 /* ev */
            getstatic io.netty.channel.epoll.Native.EPOLLERR:I
            getstatic io.netty.channel.epoll.Native.EPOLLOUT:I
            ior
            i2l
            land
            lconst_0
            lcmp
            ifeq 15
        14: .line 398
            aload 8 /* unsafe */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady:()V
        15: .line 406
      StackMap locals: long io.netty.channel.epoll.AbstractEpollChannel io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe
      StackMap stack:
            lload 5 /* ev */
            getstatic io.netty.channel.epoll.Native.EPOLLERR:I
            getstatic io.netty.channel.epoll.Native.EPOLLIN:I
            ior
            i2l
            land
            lconst_0
            lcmp
            ifeq 17
        16: .line 408
            aload 8 /* unsafe */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollInReady:()V
        17: .line 414
      StackMap locals:
      StackMap stack:
            lload 5 /* ev */
            getstatic io.netty.channel.epoll.Native.EPOLLRDHUP:I
            i2l
            land
            lconst_0
            lcmp
            ifeq 23
        18: .line 415
            aload 8 /* unsafe */
            invokevirtual io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollRdHupReady:()V
        end local 8 // io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe unsafe
        19: .line 417
            goto 23
        20: .line 420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.intValue:()I
            iload 4 /* fd */
            invokestatic io.netty.channel.epoll.Native.epollCtlDel:(II)V
        21: .line 421
            goto 23
      StackMap locals:
      StackMap stack: java.io.IOException
        22: pop
        end local 7 // io.netty.channel.epoll.AbstractEpollChannel ch
        end local 5 // long ev
        end local 4 // int fd
        23: .line 369
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 3 /* i */
            iload 2 /* ready */
            if_icmplt 2
        end local 3 // int i
        25: .line 430
            return
        end local 2 // int ready
        end local 1 // io.netty.channel.epoll.EpollEventArray events
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    this  Lio/netty/channel/epoll/EpollEventLoop;
            0   26     1  events  Lio/netty/channel/epoll/EpollEventArray;
            0   26     2   ready  I
            1   25     3       i  I
            3   23     4      fd  I
           10   23     5      ev  J
           11   23     7      ch  Lio/netty/channel/epoll/AbstractEpollChannel;
           13   19     8  unsafe  Lio/netty/channel/epoll/AbstractEpollChannel$AbstractEpollUnsafe;
      Exception table:
        from    to  target  type
          20    21      22  Class java.io.IOException
    MethodParameters:
        Name  Flags
      events  
      ready   

  protected void cleanup();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
         0: .line 436
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.epollFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
         1: .line 437
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 438
            getstatic io.netty.channel.epoll.EpollEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to close the epoll fd."
            aload 1 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
         4: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.eventFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
         5: .line 442
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 1 /* e */
        start local 1 // java.io.IOException e
         7: .line 443
            getstatic io.netty.channel.epoll.EpollEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to close the event fd."
            aload 1 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
         8: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.timerFd:Lio/netty/channel/unix/FileDescriptor;
            invokevirtual io.netty.channel.unix.FileDescriptor.close:()V
         9: .line 447
            goto 17
      StackMap locals:
      StackMap stack: java.io.IOException
        10: astore 1 /* e */
        start local 1 // java.io.IOException e
        11: .line 448
            getstatic io.netty.channel.epoll.EpollEventLoop.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to close the timer fd."
            aload 1 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
        12: .line 450
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 2
        14: .line 452
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.iovArray:Lio/netty/channel/unix/IovArray;
            invokevirtual io.netty.channel.unix.IovArray.release:()V
        15: .line 453
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            invokevirtual io.netty.channel.epoll.EpollEventArray.free:()V
        16: .line 454
            aload 2
            athrow
        17: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.iovArray:Lio/netty/channel/unix/IovArray;
            invokevirtual io.netty.channel.unix.IovArray.release:()V
        18: .line 453
            aload 0 /* this */
            getfield io.netty.channel.epoll.EpollEventLoop.events:Lio/netty/channel/epoll/EpollEventArray;
            invokevirtual io.netty.channel.epoll.EpollEventArray.free:()V
        19: .line 455
            return
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lio/netty/channel/epoll/EpollEventLoop;
            3    4     1     e  Ljava/io/IOException;
            7    8     1     e  Ljava/io/IOException;
           11   12     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           4     5       6  Class java.io.IOException
           8     9      10  Class java.io.IOException
           0    13      13  any

  protected void validateScheduled(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.netty.channel.epoll.EpollEventLoop this
        start local 1 // long amount
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 459
            aload 3 /* unit */
            lload 1 /* amount */
            invokevirtual java.util.concurrent.TimeUnit.toDays:(J)J
            lstore 4 /* days */
        start local 4 // long days
         1: .line 460
            lload 4 /* days */
            getstatic io.netty.channel.epoll.EpollEventLoop.MAX_SCHEDULED_DAYS:J
            lcmp
            ifle 3
         2: .line 461
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "days: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* days */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (expected: < "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.netty.channel.epoll.EpollEventLoop.MAX_SCHEDULED_DAYS:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 463
      StackMap locals: long
      StackMap stack:
            return
        end local 4 // long days
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long amount
        end local 0 // io.netty.channel.epoll.EpollEventLoop this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/netty/channel/epoll/EpollEventLoop;
            0    4     1  amount  J
            0    4     3    unit  Ljava/util/concurrent/TimeUnit;
            1    4     4    days  J
    MethodParameters:
        Name  Flags
      amount  
      unit    

  static int access$0(io.netty.channel.epoll.EpollEventLoop);
    descriptor: (Lio/netty/channel/epoll/EpollEventLoop;)I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial io.netty.channel.SingleThreadEventLoop.pendingTasks:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "EpollEventLoop.java"
NestMembers:
  io.netty.channel.epoll.EpollEventLoop$1  io.netty.channel.epoll.EpollEventLoop$2
InnerClasses:
  public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel
  protected abstract AbstractEpollUnsafe = io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe of io.netty.channel.epoll.AbstractEpollChannel
  io.netty.channel.epoll.EpollEventLoop$1
  io.netty.channel.epoll.EpollEventLoop$2