class sun.nio.ch.PipeImpl extends java.nio.channels.Pipe
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.ch.PipeImpl
  super_class: java.nio.channels.Pipe
{
  private final java.nio.channels.Pipe$SourceChannel source;
    descriptor: Ljava/nio/channels/Pipe$SourceChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.channels.Pipe$SinkChannel sink;
    descriptor: Ljava/nio/channels/Pipe$SinkChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.nio.channels.spi.SelectorProvider);
    descriptor: (Ljava/nio/channels/spi/SelectorProvider;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.nio.ch.PipeImpl this
        start local 1 // java.nio.channels.spi.SelectorProvider sp
         0: .line 41
            aload 0 /* this */
            invokespecial java.nio.channels.Pipe.<init>:()V
         1: .line 42
            iconst_2
            newarray 10
            astore 2 /* fdes */
        start local 2 // int[] fdes
         2: .line 43
            aload 2 /* fdes */
            iconst_1
            invokestatic sun.nio.ch.IOUtil.initPipe:([IZ)V
         3: .line 44
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 3 /* sourcefd */
        start local 3 // java.io.FileDescriptor sourcefd
         4: .line 45
            aload 3 /* sourcefd */
            aload 2 /* fdes */
            iconst_0
            iaload
            invokestatic sun.nio.ch.IOUtil.setfdVal:(Ljava/io/FileDescriptor;I)V
         5: .line 46
            aload 0 /* this */
            new sun.nio.ch.SourceChannelImpl
            dup
            aload 1 /* sp */
            aload 3 /* sourcefd */
            invokespecial sun.nio.ch.SourceChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;)V
            putfield sun.nio.ch.PipeImpl.source:Ljava/nio/channels/Pipe$SourceChannel;
         6: .line 47
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 4 /* sinkfd */
        start local 4 // java.io.FileDescriptor sinkfd
         7: .line 48
            aload 4 /* sinkfd */
            aload 2 /* fdes */
            iconst_1
            iaload
            invokestatic sun.nio.ch.IOUtil.setfdVal:(Ljava/io/FileDescriptor;I)V
         8: .line 49
            aload 0 /* this */
            new sun.nio.ch.SinkChannelImpl
            dup
            aload 1 /* sp */
            aload 4 /* sinkfd */
            invokespecial sun.nio.ch.SinkChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;)V
            putfield sun.nio.ch.PipeImpl.sink:Ljava/nio/channels/Pipe$SinkChannel;
         9: .line 50
            return
        end local 4 // java.io.FileDescriptor sinkfd
        end local 3 // java.io.FileDescriptor sourcefd
        end local 2 // int[] fdes
        end local 1 // java.nio.channels.spi.SelectorProvider sp
        end local 0 // sun.nio.ch.PipeImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lsun/nio/ch/PipeImpl;
            0   10     1        sp  Ljava/nio/channels/spi/SelectorProvider;
            2   10     2      fdes  [I
            4   10     3  sourcefd  Ljava/io/FileDescriptor;
            7   10     4    sinkfd  Ljava/io/FileDescriptor;
    MethodParameters:
      Name  Flags
      sp    

  public java.nio.channels.Pipe$SourceChannel source();
    descriptor: ()Ljava/nio/channels/Pipe$SourceChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.PipeImpl this
         0: .line 53
            aload 0 /* this */
            getfield sun.nio.ch.PipeImpl.source:Ljava/nio/channels/Pipe$SourceChannel;
            areturn
        end local 0 // sun.nio.ch.PipeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/PipeImpl;

  public java.nio.channels.Pipe$SinkChannel sink();
    descriptor: ()Ljava/nio/channels/Pipe$SinkChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.PipeImpl this
         0: .line 57
            aload 0 /* this */
            getfield sun.nio.ch.PipeImpl.sink:Ljava/nio/channels/Pipe$SinkChannel;
            areturn
        end local 0 // sun.nio.ch.PipeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/PipeImpl;
}
SourceFile: "PipeImpl.java"
InnerClasses:
  public abstract SinkChannel = java.nio.channels.Pipe$SinkChannel of java.nio.channels.Pipe
  public abstract SourceChannel = java.nio.channels.Pipe$SourceChannel of java.nio.channels.Pipe