public abstract class io.netty.channel.oio.AbstractOioChannel extends io.netty.channel.AbstractChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.channel.oio.AbstractOioChannel
  super_class: io.netty.channel.AbstractChannel
{
  protected static final int SO_TIMEOUT;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  boolean readPending;
    descriptor: Z
    flags: (0x0000) 

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

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

  protected void <init>(io.netty.channel.Channel);
    descriptor: (Lio/netty/channel/Channel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
        start local 1 // io.netty.channel.Channel parent
         0: .line 51
            aload 0 /* this */
            aload 1 /* parent */
            invokespecial io.netty.channel.AbstractChannel.<init>:(Lio/netty/channel/Channel;)V
         1: .line 34
            aload 0 /* this */
            new io.netty.channel.oio.AbstractOioChannel$1
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.oio.AbstractOioChannel$1.<init>:(Lio/netty/channel/oio/AbstractOioChannel;)V
            putfield io.netty.channel.oio.AbstractOioChannel.readTask:Ljava/lang/Runnable;
         2: .line 40
            aload 0 /* this */
            new io.netty.channel.oio.AbstractOioChannel$2
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.oio.AbstractOioChannel$2.<init>:(Lio/netty/channel/oio/AbstractOioChannel;)V
            putfield io.netty.channel.oio.AbstractOioChannel.clearReadPendingRunnable:Ljava/lang/Runnable;
         3: .line 52
            return
        end local 1 // io.netty.channel.Channel parent
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/netty/channel/oio/AbstractOioChannel;
            0    4     1  parent  Lio/netty/channel/Channel;
    MethodParameters:
        Name  Flags
      parent  

  protected io.netty.channel.AbstractChannel$AbstractUnsafe newUnsafe();
    descriptor: ()Lio/netty/channel/AbstractChannel$AbstractUnsafe;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
         0: .line 56
            new io.netty.channel.oio.AbstractOioChannel$DefaultOioUnsafe
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.oio.AbstractOioChannel$DefaultOioUnsafe.<init>:(Lio/netty/channel/oio/AbstractOioChannel;)V
            areturn
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/oio/AbstractOioChannel;

  protected boolean isCompatible(io.netty.channel.EventLoop);
    descriptor: (Lio/netty/channel/EventLoop;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
        start local 1 // io.netty.channel.EventLoop loop
         0: .line 89
            aload 1 /* loop */
            instanceof io.netty.channel.ThreadPerChannelEventLoop
            ireturn
        end local 1 // io.netty.channel.EventLoop loop
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/oio/AbstractOioChannel;
            0    1     1  loop  Lio/netty/channel/EventLoop;
    MethodParameters:
      Name  Flags
      loop  

  protected abstract void doConnect(java.net.SocketAddress, java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
               Name  Flags
      remoteAddress  
      localAddress   

  protected void doBeginRead();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
         0: .line 100
            aload 0 /* this */
            getfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
            ifeq 2
         1: .line 101
            return
         2: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
         3: .line 105
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.AbstractOioChannel.eventLoop:()Lio/netty/channel/EventLoop;
            aload 0 /* this */
            getfield io.netty.channel.oio.AbstractOioChannel.readTask:Ljava/lang/Runnable;
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
         4: .line 106
            return
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/oio/AbstractOioChannel;
    Exceptions:
      throws java.lang.Exception

  protected abstract void doRead();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected boolean isReadPending();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
         0: .line 116
            aload 0 /* this */
            getfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
            ireturn
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/oio/AbstractOioChannel;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected void setReadPending(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
        start local 1 // boolean readPending
         0: .line 125
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.AbstractOioChannel.isRegistered:()Z
            ifeq 7
         1: .line 126
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.AbstractOioChannel.eventLoop:()Lio/netty/channel/EventLoop;
            astore 2 /* eventLoop */
        start local 2 // io.netty.channel.EventLoop eventLoop
         2: .line 127
            aload 2 /* eventLoop */
            invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
            ifeq 5
         3: .line 128
            aload 0 /* this */
            iload 1 /* readPending */
            putfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
         4: .line 129
            goto 8
         5: .line 130
      StackMap locals: io.netty.channel.EventLoop
      StackMap stack:
            aload 2 /* eventLoop */
            new io.netty.channel.oio.AbstractOioChannel$3
            dup
            aload 0 /* this */
            iload 1 /* readPending */
            invokespecial io.netty.channel.oio.AbstractOioChannel$3.<init>:(Lio/netty/channel/oio/AbstractOioChannel;Z)V
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
        end local 2 // io.netty.channel.EventLoop eventLoop
         6: .line 137
            goto 8
         7: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* readPending */
            putfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
         8: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean readPending
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lio/netty/channel/oio/AbstractOioChannel;
            0    9     1  readPending  Z
            2    6     2    eventLoop  Lio/netty/channel/EventLoop;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      readPending  final

  protected final void clearReadPending();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.oio.AbstractOioChannel this
         0: .line 146
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.AbstractOioChannel.isRegistered:()Z
            ifeq 7
         1: .line 147
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.AbstractOioChannel.eventLoop:()Lio/netty/channel/EventLoop;
            astore 1 /* eventLoop */
        start local 1 // io.netty.channel.EventLoop eventLoop
         2: .line 148
            aload 1 /* eventLoop */
            invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
            ifeq 5
         3: .line 149
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
         4: .line 150
            goto 8
         5: .line 151
      StackMap locals: io.netty.channel.EventLoop
      StackMap stack:
            aload 1 /* eventLoop */
            aload 0 /* this */
            getfield io.netty.channel.oio.AbstractOioChannel.clearReadPendingRunnable:Ljava/lang/Runnable;
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
        end local 1 // io.netty.channel.EventLoop eventLoop
         6: .line 153
            goto 8
         7: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.oio.AbstractOioChannel.readPending:Z
         8: .line 157
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.oio.AbstractOioChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lio/netty/channel/oio/AbstractOioChannel;
            2    6     1  eventLoop  Lio/netty/channel/EventLoop;
}
SourceFile: "AbstractOioChannel.java"
NestMembers:
  io.netty.channel.oio.AbstractOioChannel$1  io.netty.channel.oio.AbstractOioChannel$2  io.netty.channel.oio.AbstractOioChannel$3  io.netty.channel.oio.AbstractOioChannel$DefaultOioUnsafe
InnerClasses:
  protected abstract AbstractUnsafe = io.netty.channel.AbstractChannel$AbstractUnsafe of io.netty.channel.AbstractChannel
  io.netty.channel.oio.AbstractOioChannel$1
  io.netty.channel.oio.AbstractOioChannel$2
  io.netty.channel.oio.AbstractOioChannel$3
  private final DefaultOioUnsafe = io.netty.channel.oio.AbstractOioChannel$DefaultOioUnsafe of io.netty.channel.oio.AbstractOioChannel