class com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump
super_class: java.lang.Thread
{
private static final int BUF_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private final java.nio.channels.ReadableByteChannel source;
descriptor: Ljava/nio/channels/ReadableByteChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.channels.WritableByteChannel sink;
descriptor: Ljava/nio/channels/WritableByteChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(java.lang.String, java.nio.channels.ReadableByteChannel, java.nio.channels.WritableByteChannel);
descriptor: (Ljava/lang/String;Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/WritableByteChannel;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new java.lang.StringBuilder
dup
ldc "ChannelPump-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
1: aload 0
aload 2
putfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.source:Ljava/nio/channels/ReadableByteChannel;
2: aload 0
aload 3
putfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.sink:Ljava/nio/channels/WritableByteChannel;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/runtime/ProcessWrapper$ChannelPump;
0 4 1 streamName Ljava/lang/String;
0 4 2 source Ljava/nio/channels/ReadableByteChannel;
0 4 3 sink Ljava/nio/channels/WritableByteChannel;
MethodParameters:
Name Flags
streamName
source
sink
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: sipush 8192
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 1
start local 1 1: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
2: aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.source:Ljava/nio/channels/ReadableByteChannel;
aload 1
invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 3: iload 2
iconst_m1
if_icmpne 11
4: aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.sink:Ljava/nio/channels/WritableByteChannel;
invokeinterface java.nio.channels.WritableByteChannel.close:()V
5: goto 7
StackMap locals: com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump java.nio.ByteBuffer int
StackMap stack: java.io.IOException
6: pop
7: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.source:Ljava/nio/channels/ReadableByteChannel;
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
8: goto 10
StackMap locals:
StackMap stack: java.io.IOException
9: pop
10: StackMap locals:
StackMap stack:
return
11: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.sink:Ljava/nio/channels/WritableByteChannel;
aload 1
invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
pop
14: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 13
end local 2 15: goto 1
16: StackMap locals: com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump java.nio.ByteBuffer
StackMap stack: java.io.IOException
pop
17: aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.sink:Ljava/nio/channels/WritableByteChannel;
invokeinterface java.nio.channels.WritableByteChannel.close:()V
18: goto 20
StackMap locals:
StackMap stack: java.io.IOException
19: pop
20: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.source:Ljava/nio/channels/ReadableByteChannel;
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
21: goto 31
StackMap locals:
StackMap stack: java.io.IOException
22: pop
goto 31
23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
24: aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.sink:Ljava/nio/channels/WritableByteChannel;
invokeinterface java.nio.channels.WritableByteChannel.close:()V
25: goto 27
StackMap locals: com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump java.nio.ByteBuffer top java.lang.Throwable
StackMap stack: java.io.IOException
26: pop
27: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump.source:Ljava/nio/channels/ReadableByteChannel;
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
28: goto 30
StackMap locals:
StackMap stack: java.io.IOException
29: pop
30: StackMap locals:
StackMap stack:
aload 3
athrow
31: StackMap locals: com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump java.nio.ByteBuffer
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/oracle/graal/python/runtime/ProcessWrapper$ChannelPump;
1 32 1 buf Ljava/nio/ByteBuffer;
3 15 2 r I
Exception table:
from to target type
4 5 6 Class java.io.IOException
7 8 9 Class java.io.IOException
1 4 16 Class java.io.IOException
11 16 16 Class java.io.IOException
17 18 19 Class java.io.IOException
20 21 22 Class java.io.IOException
1 4 23 any
11 17 23 any
24 25 26 Class java.io.IOException
27 28 29 Class java.io.IOException
}
SourceFile: "ProcessWrapper.java"
NestHost: com.oracle.graal.python.runtime.ProcessWrapper
InnerClasses:
ChannelPump = com.oracle.graal.python.runtime.ProcessWrapper$ChannelPump of com.oracle.graal.python.runtime.ProcessWrapper