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=8, 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_1
            invokestatic sun.nio.ch.IOUtil.makePipe:(Z)J
            lstore 2 /* pipeFds */
        start local 2 // long pipeFds
         2: .line 43
            lload 2 /* pipeFds */
            bipush 32
            lushr
            l2i
            istore 4 /* readFd */
        start local 4 // int readFd
         3: .line 44
            lload 2 /* pipeFds */
            l2i
            istore 5 /* writeFd */
        start local 5 // int writeFd
         4: .line 45
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 6 /* sourcefd */
        start local 6 // java.io.FileDescriptor sourcefd
         5: .line 46
            aload 6 /* sourcefd */
            iload 4 /* readFd */
            invokestatic sun.nio.ch.IOUtil.setfdVal:(Ljava/io/FileDescriptor;I)V
         6: .line 47
            aload 0 /* this */
            new sun.nio.ch.SourceChannelImpl
            dup
            aload 1 /* sp */
            aload 6 /* 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;
         7: .line 48
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 7 /* sinkfd */
        start local 7 // java.io.FileDescriptor sinkfd
         8: .line 49
            aload 7 /* sinkfd */
            iload 5 /* writeFd */
            invokestatic sun.nio.ch.IOUtil.setfdVal:(Ljava/io/FileDescriptor;I)V
         9: .line 50
            aload 0 /* this */
            new sun.nio.ch.SinkChannelImpl
            dup
            aload 1 /* sp */
            aload 7 /* 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;
        10: .line 51
            return
        end local 7 // java.io.FileDescriptor sinkfd
        end local 6 // java.io.FileDescriptor sourcefd
        end local 5 // int writeFd
        end local 4 // int readFd
        end local 2 // long pipeFds
        end local 1 // java.nio.channels.spi.SelectorProvider sp
        end local 0 // sun.nio.ch.PipeImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lsun/nio/ch/PipeImpl;
            0   11     1        sp  Ljava/nio/channels/spi/SelectorProvider;
            2   11     2   pipeFds  J
            3   11     4    readFd  I
            4   11     5   writeFd  I
            5   11     6  sourcefd  Ljava/io/FileDescriptor;
            8   11     7    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 54
            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 58
            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