public class com.oracle.graal.python.runtime.PosixResources
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.graal.python.runtime.PosixResources
super_class: java.lang.Object
{
private final int FD_STDIN;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 0
private final int FD_STDOUT;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 1
private final int FD_STDERR;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 2
private final java.util.SortedMap<java.lang.Integer, com.oracle.graal.python.runtime.PosixResources$ChannelWrapper> files;
descriptor: Ljava/util/SortedMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/SortedMap<Ljava/lang/Integer;Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;>;
private final java.util.Map<java.lang.Integer, java.lang.String> filePaths;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;
private final java.util.List<java.lang.Process> children;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Process;>;
private final java.util.Map<java.lang.String, java.lang.Integer> inodes;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
private int inodeCnt;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.oracle.graal.python.runtime.PosixResources.FD_STDIN:I
2: aload 0
iconst_1
putfield com.oracle.graal.python.runtime.PosixResources.FD_STDOUT:I
3: aload 0
iconst_2
putfield com.oracle.graal.python.runtime.PosixResources.FD_STDERR:I
4: aload 0
iconst_0
putfield com.oracle.graal.python.runtime.PosixResources.inodeCnt:I
5: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
invokestatic java.util.Collections.synchronizedSortedMap:(Ljava/util/SortedMap;)Ljava/util/SortedMap;
putfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
7: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
putfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
8: ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 9: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
dup
invokespecial com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.<init>:()V
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
dup
invokespecial com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.<init>:()V
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
dup
invokespecial com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.<init>:()V
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 1
ifnull 17
aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc "win"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 17
13: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc "STDIN"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc "STDOUT"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc "STDERR"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: goto 20
17: StackMap locals: com.oracle.graal.python.runtime.PosixResources java.lang.String
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc "/dev/stdin"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc "/dev/stdout"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc "/dev/stderr"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
new com.oracle.graal.python.runtime.PosixResources$ProcessGroup
dup
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
invokespecial com.oracle.graal.python.runtime.PosixResources$ProcessGroup.<init>:(Ljava/util/List;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.graal.python.runtime.PosixResources.inodes:Ljava/util/Map;
22: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/graal/python/runtime/PosixResources;
9 23 1 osProperty Ljava/lang/String;
public void setEnv(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 2
monitorenter
1: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.in:()Ljava/io/InputStream;
invokevirtual com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.setNewChannel:(Ljava/io/InputStream;)V
2: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.out:()Ljava/io/OutputStream;
invokevirtual com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.setNewChannel:(Ljava/io/OutputStream;)V
3: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.err:()Ljava/io/OutputStream;
invokevirtual com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.setNewChannel:(Ljava/io/OutputStream;)V
4: aload 2
monitorexit
5: goto 8
StackMap locals: com.oracle.graal.python.runtime.PosixResources com.oracle.truffle.api.TruffleLanguage$Env java.util.SortedMap
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 9 1 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
Exception table:
from to target type
1 5 6 any
6 7 6 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
env
private void addFD(int, java.nio.channels.Channel);
descriptor: (ILjava/nio/channels/Channel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
aconst_null
invokevirtual com.oracle.graal.python.runtime.PosixResources.addFD:(ILjava/nio/channels/Channel;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 2 1 fd I
0 2 2 channel Ljava/nio/channels/Channel;
MethodParameters:
Name Flags
fd
channel
private void addFD(int, java.nio.channels.Channel, java.lang.String);
descriptor: (ILjava/nio/channels/Channel;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
dup
aload 2
invokespecial com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.<init>:(Ljava/nio/channels/Channel;)V
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 3
ifnull 3
2: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals:
StackMap stack:
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/PosixResources;
0 4 1 fd I
0 4 2 channel Ljava/nio/channels/Channel;
0 4 3 path Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
channel
path
private void removeFD(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 2
start local 2 1: aload 2
ifnull 14
2: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 3
monitorenter
3: aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.cnt:I
iconst_1
if_icmpne 6
4: aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.channel:Ljava/nio/channels/Channel;
invokeinterface java.nio.channels.Channel.close:()V
5: goto 8
StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper java.util.SortedMap
StackMap stack:
6: aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.cnt:I
iconst_1
if_icmple 8
7: aload 2
dup
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.cnt:I
iconst_1
isub
putfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.cnt:I
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.SortedMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 3
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 15 1 fd I
1 15 2 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
Exception table:
from to target type
3 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
private void dupFD(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 3
start local 3 1: aload 3
ifnull 4
2: aload 3
dup
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.cnt:I
iconst_1
iadd
putfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.cnt:I
3: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 5 1 fd1 I
0 5 2 fd2 I
1 5 3 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd1
fd2
public java.nio.channels.Channel getFileChannel(int, com.oracle.truffle.api.profiles.ValueProfile);
descriptor: (ILcom/oracle/truffle/api/profiles/ValueProfile;)Ljava/nio/channels/Channel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 2
aload 3
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.channel:Ljava/nio/channels/Channel;
invokevirtual com.oracle.truffle.api.profiles.ValueProfile.profile:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.channels.Channel
areturn
3: StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
StackMap stack:
aconst_null
areturn
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/PosixResources;
0 4 1 fd I
0 4 2 classProfile Lcom/oracle/truffle/api/profiles/ValueProfile;
1 4 3 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
classProfile
public java.nio.channels.FileLock getFileLock(int);
descriptor: (I)Ljava/nio/channels/FileLock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.lock:Ljava/nio/channels/FileLock;
areturn
3: StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 4 1 fd I
1 4 2 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public void setFileLock(int, java.nio.channels.FileLock);
descriptor: (ILjava/nio/channels/FileLock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 3
aload 2
putfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.lock:Ljava/nio/channels/FileLock;
3: StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
StackMap stack:
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/PosixResources;
0 4 1 fd I
0 4 2 lock Ljava/nio/channels/FileLock;
1 4 3 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
lock
public java.nio.channels.Channel getFileChannel(int);
descriptor: (I)Ljava/nio/channels/Channel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.channel:Ljava/nio/channels/Channel;
areturn
3: StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 4 1 fd I
1 4 2 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public java.lang.String getFilePath(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.filePaths:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 1 1 fd I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public com.oracle.graal.python.builtins.objects.socket.PSocket getSocket(int);
descriptor: (I)Lcom/oracle/graal/python/builtins/objects/socket/PSocket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
astore 2
start local 2 1: aload 2
ifnull 3
aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.channel:Ljava/nio/channels/Channel;
instanceof com.oracle.graal.python.builtins.objects.socket.PSocket
ifeq 3
2: aload 2
getfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.channel:Ljava/nio/channels/Channel;
checkcast com.oracle.graal.python.builtins.objects.socket.PSocket
areturn
3: StackMap locals: com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 4 1 fd I
1 4 2 channelWrapper Lcom/oracle/graal/python/runtime/PosixResources$ChannelWrapper;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public void close(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.removeFD:(I)V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 4 1 fd I
Exception table:
from to target type
0 1 2 Class java.io.IOException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public int openSocket(com.oracle.graal.python.builtins.objects.socket.PSocket);
descriptor: (Lcom/oracle/graal/python/builtins/objects/socket/PSocket;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 2
monitorenter
1: aload 0
invokevirtual com.oracle.graal.python.runtime.PosixResources.nextFreeFd:()I
istore 3
start local 3 2: aload 0
iload 3
aload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.addFD:(ILjava/nio/channels/Channel;)V
3: iload 3
aload 2
monitorexit
4: ireturn
end local 3 5: StackMap locals: com.oracle.graal.python.runtime.PosixResources com.oracle.graal.python.builtins.objects.socket.PSocket java.util.SortedMap
StackMap stack: java.lang.Throwable
aload 2
monitorexit
6: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 7 1 socket Lcom/oracle/graal/python/builtins/objects/socket/PSocket;
2 5 3 fd I
Exception table:
from to target type
1 4 5 any
5 6 5 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
socket
public void reopenSocket(com.oracle.graal.python.builtins.objects.socket.PSocket, int);
descriptor: (Lcom/oracle/graal/python/builtins/objects/socket/PSocket;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 2
aload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.addFD:(ILjava/nio/channels/Channel;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 2 1 socket Lcom/oracle/graal/python/builtins/objects/socket/PSocket;
0 2 2 fd I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
socket
fd
public void fdopen(int, java.nio.channels.Channel);
descriptor: (ILjava/nio/channels/Channel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.graal.python.runtime.PosixResources$ChannelWrapper
aload 2
putfield com.oracle.graal.python.runtime.PosixResources$ChannelWrapper.channel:Ljava/nio/channels/Channel;
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 2 1 fd I
0 2 2 fc Ljava/nio/channels/Channel;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
fc
public int open(com.oracle.truffle.api.TruffleFile, java.nio.channels.Channel);
descriptor: (Lcom/oracle/truffle/api/TruffleFile;Ljava/nio/channels/Channel;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 3
monitorenter
1: aload 0
invokevirtual com.oracle.graal.python.runtime.PosixResources.nextFreeFd:()I
istore 4
start local 4 2: aload 0
iload 4
aload 2
aload 1
invokevirtual com.oracle.truffle.api.TruffleFile.getAbsoluteFile:()Lcom/oracle/truffle/api/TruffleFile;
invokevirtual com.oracle.truffle.api.TruffleFile.getPath:()Ljava/lang/String;
invokevirtual com.oracle.graal.python.runtime.PosixResources.addFD:(ILjava/nio/channels/Channel;Ljava/lang/String;)V
3: iload 4
aload 3
monitorexit
4: ireturn
end local 4 5: StackMap locals: com.oracle.graal.python.runtime.PosixResources com.oracle.truffle.api.TruffleFile java.nio.channels.Channel java.util.SortedMap
StackMap stack: java.lang.Throwable
aload 3
monitorexit
6: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 7 1 path Lcom/oracle/truffle/api/TruffleFile;
0 7 2 fc Ljava/nio/channels/Channel;
2 5 4 fd I
Exception table:
from to target type
1 4 5 any
5 6 5 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
path
fc
public int dup(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 2
monitorenter
1: aload 0
invokevirtual com.oracle.graal.python.runtime.PosixResources.nextFreeFd:()I
istore 3
start local 3 2: aload 0
iload 1
iload 3
invokevirtual com.oracle.graal.python.runtime.PosixResources.dupFD:(II)V
3: iload 3
aload 2
monitorexit
4: ireturn
end local 3 5: StackMap locals: com.oracle.graal.python.runtime.PosixResources int java.util.SortedMap
StackMap stack: java.lang.Throwable
aload 2
monitorexit
6: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 7 1 fd I
2 5 3 dupFd I
Exception table:
from to target type
1 4 5 any
5 6 5 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public int dup2(int, int);
descriptor: (II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 3
monitorenter
1: aload 0
iload 2
invokevirtual com.oracle.graal.python.runtime.PosixResources.removeFD:(I)V
2: aload 0
iload 1
iload 2
invokevirtual com.oracle.graal.python.runtime.PosixResources.dupFD:(II)V
3: iload 2
aload 3
monitorexit
4: ireturn
5: StackMap locals: com.oracle.graal.python.runtime.PosixResources int int java.util.SortedMap
StackMap stack: java.lang.Throwable
aload 3
monitorexit
6: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 7 1 fd I
0 7 2 fd2 I
Exception table:
from to target type
1 4 5 any
5 6 5 any
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
fd2
public boolean fsync(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokeinterface java.util.SortedMap.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 2 1 fd I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
public void ftruncate(int, long);
descriptor: (IJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.getFileChannel:(I)Ljava/nio/channels/Channel;
astore 4
start local 4 1: aload 4
instanceof java.nio.channels.SeekableByteChannel
ifeq 3
2: aload 4
checkcast java.nio.channels.SeekableByteChannel
lload 2
invokeinterface java.nio.channels.SeekableByteChannel.truncate:(J)Ljava/nio/channels/SeekableByteChannel;
pop
3: StackMap locals: java.nio.channels.Channel
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 4 1 fd I
0 4 2 size J
1 4 4 channel Ljava/nio/channels/Channel;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
fd
size
public int[] pipe();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
dup
astore 1
monitorenter
1: invokestatic java.nio.channels.Pipe.open:()Ljava/nio/channels/Pipe;
astore 2
start local 2 2: aload 0
invokevirtual com.oracle.graal.python.runtime.PosixResources.nextFreeFd:()I
istore 3
start local 3 3: aload 0
iload 3
aload 2
invokevirtual java.nio.channels.Pipe.source:()Ljava/nio/channels/Pipe$SourceChannel;
invokevirtual com.oracle.graal.python.runtime.PosixResources.addFD:(ILjava/nio/channels/Channel;)V
4: aload 0
invokevirtual com.oracle.graal.python.runtime.PosixResources.nextFreeFd:()I
istore 4
start local 4 5: aload 0
iload 4
aload 2
invokevirtual java.nio.channels.Pipe.sink:()Ljava/nio/channels/Pipe$SinkChannel;
invokevirtual com.oracle.graal.python.runtime.PosixResources.addFD:(ILjava/nio/channels/Channel;)V
6: iconst_2
newarray 10
dup
iconst_0
iload 3
iastore
dup
iconst_1
iload 4
iastore
aload 1
monitorexit
7: areturn
end local 4 end local 3 end local 2 8: StackMap locals: com.oracle.graal.python.runtime.PosixResources java.util.SortedMap
StackMap stack: java.lang.Throwable
aload 1
monitorexit
9: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/graal/python/runtime/PosixResources;
2 8 2 pipe Ljava/nio/channels/Pipe;
3 8 3 readFD I
5 8 4 writeFD I
Exception table:
from to target type
1 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
private int nextFreeFd();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.firstKey:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 1
start local 1 1: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: com.oracle.graal.python.runtime.PosixResources int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 2
start local 2 3: iload 2
iload 1
if_icmpne 5
4: goto 8
5: StackMap locals: com.oracle.graal.python.runtime.PosixResources int int java.util.Iterator
StackMap stack:
iload 2
iload 1
isub
iconst_1
if_icmple 7
6: iload 1
iconst_1
iadd
ireturn
7: StackMap locals:
StackMap stack:
iload 2
istore 1
end local 2 8: StackMap locals: com.oracle.graal.python.runtime.PosixResources int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
9: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.files:Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.lastKey:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iconst_1
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/graal/python/runtime/PosixResources;
1 10 1 fd1 I
3 8 2 fd2 I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public int registerChild(java.lang.Process);
descriptor: (Ljava/lang/Process;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.graal.python.runtime.PosixResources.nextFreePid:()I
istore 2
start local 2 1: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 2
aload 1
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
2: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 3 1 child Ljava/lang/Process;
1 3 2 pid I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
child
private int nextFreePid();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
dup
astore 1
monitorenter
1: iconst_0
istore 2
start local 2 2: goto 8
3: StackMap locals: java.util.List int
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Process
astore 3
start local 3 4: aload 3
ifnonnull 7
5: iload 2
aload 1
monitorexit
6: ireturn
end local 3 7: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 2 9: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
aconst_null
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
aload 1
monitorexit
11: ireturn
12: StackMap locals: com.oracle.graal.python.runtime.PosixResources java.util.List
StackMap stack: java.lang.Throwable
aload 1
monitorexit
13: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/graal/python/runtime/PosixResources;
2 9 2 i I
4 7 3 openPath Ljava/lang/Process;
Exception table:
from to target type
1 6 12 any
7 11 12 any
12 13 12 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
private java.lang.Process getChild(int);
descriptor: (I)Ljava/lang/Process;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_m1
if_icmpge 2
1: new java.lang.IndexOutOfBoundsException
dup
ldc "we do not support process groups"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
iconst_m1
if_icmpne 4
3: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Process
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Process
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 5 1 pid I
Exceptions:
throws java.lang.IndexOutOfBoundsException
MethodParameters:
Name Flags
pid
public void sigdfl(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.getChild:(I)Ljava/lang/Process;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 2 1 pid I
Exceptions:
throws java.lang.IndexOutOfBoundsException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
pid
public void sigterm(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.getChild:(I)Ljava/lang/Process;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.Process.destroy:()V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 3 1 pid I
1 3 2 process Ljava/lang/Process;
Exceptions:
throws java.lang.IndexOutOfBoundsException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
pid
public void sigkill(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.getChild:(I)Ljava/lang/Process;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.Process.destroyForcibly:()Ljava/lang/Process;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 3 1 pid I
1 3 2 process Ljava/lang/Process;
Exceptions:
throws java.lang.IndexOutOfBoundsException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
pid
public int waitpid(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.getChild:(I)Ljava/lang/Process;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.Process.waitFor:()I
istore 3
start local 3 2: iload 1
ifle 4
3: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 1
aconst_null
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: java.lang.Process int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 5 1 pid I
1 5 2 process Ljava/lang/Process;
2 5 3 exitStatus I
Exceptions:
throws java.lang.IndexOutOfBoundsException, java.lang.InterruptedException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
pid
public int[] exitStatus(int);
descriptor: (I)[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
iconst_m1
if_icmpne 10
1: iconst_1
istore 2
start local 2 2: goto 8
3: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Process
astore 3
start local 3 4: aload 3
ifnull 7
aload 3
invokevirtual java.lang.Process.isAlive:()Z
ifne 7
5: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 2
aconst_null
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
6: iconst_2
newarray 10
dup
iconst_0
iload 2
iastore
dup
iconst_1
aload 3
invokevirtual java.lang.Process.exitValue:()I
iastore
areturn
end local 3 7: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 2 9: goto 14
10: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual com.oracle.graal.python.runtime.PosixResources.getChild:(I)Ljava/lang/Process;
astore 2
start local 2 11: aload 2
invokevirtual java.lang.Process.isAlive:()Z
ifne 14
12: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.children:Ljava/util/List;
iload 1
aconst_null
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
13: iconst_2
newarray 10
dup
iconst_0
iload 1
iastore
dup
iconst_1
aload 2
invokevirtual java.lang.Process.exitValue:()I
iastore
areturn
end local 2 14: StackMap locals:
StackMap stack:
iconst_2
newarray 10
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 15 1 pid I
2 9 2 childPid I
4 7 3 child Ljava/lang/Process;
11 14 2 process Ljava/lang/Process;
Exceptions:
throws java.lang.IndexOutOfBoundsException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
pid
public int getInodeId(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.inodes:Ljava/util/Map;
dup
astore 2
monitorenter
1: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.inodes:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 5
2: aload 0
dup
getfield com.oracle.graal.python.runtime.PosixResources.inodeCnt:I
dup_x1
iconst_1
iadd
putfield com.oracle.graal.python.runtime.PosixResources.inodeCnt:I
istore 3
start local 3 3: aload 0
getfield com.oracle.graal.python.runtime.PosixResources.inodes:Ljava/util/Map;
aload 1
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: goto 6
end local 3 5: StackMap locals: java.util.Map
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.PosixResources.inodes:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 3
start local 3 6: StackMap locals: int
StackMap stack:
iload 3
aload 2
monitorexit
7: ireturn
end local 3 8: StackMap locals: com.oracle.graal.python.runtime.PosixResources java.lang.String java.util.Map
StackMap stack: java.lang.Throwable
aload 2
monitorexit
9: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/graal/python/runtime/PosixResources;
0 10 1 canonical Ljava/lang/String;
3 5 3 inodeId I
6 8 3 inodeId I
Exception table:
from to target type
1 7 8 any
8 9 8 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
canonical
}
SourceFile: "PosixResources.java"
NestMembers:
com.oracle.graal.python.runtime.PosixResources$ChannelWrapper com.oracle.graal.python.runtime.PosixResources$ProcessGroup
InnerClasses:
private ChannelWrapper = com.oracle.graal.python.runtime.PosixResources$ChannelWrapper of com.oracle.graal.python.runtime.PosixResources
private ProcessGroup = com.oracle.graal.python.runtime.PosixResources$ProcessGroup of com.oracle.graal.python.runtime.PosixResources
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
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