Skip to content

Commit cf8b2b2

Browse files
committed
Use TruffleFile in getpid
1 parent b3e924b commit cf8b2b2

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PosixModuleBuiltins.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,7 @@
6161
import java.nio.channels.ReadableByteChannel;
6262
import java.nio.channels.SeekableByteChannel;
6363
import java.nio.channels.WritableByteChannel;
64-
import java.nio.file.Files;
6564
import java.nio.file.LinkOption;
66-
import java.nio.file.Path;
67-
import java.nio.file.Paths;
6865
import java.nio.file.StandardCopyOption;
6966
import java.nio.file.StandardOpenOption;
7067
import java.nio.file.attribute.FileAttribute;
@@ -85,6 +82,9 @@
8582
import java.util.Set;
8683
import java.util.concurrent.TimeUnit;
8784

85+
import org.graalvm.nativeimage.ImageInfo;
86+
import org.graalvm.nativeimage.ProcessProperties;
87+
8888
import com.oracle.graal.python.PythonLanguage;
8989
import com.oracle.graal.python.builtins.Builtin;
9090
import com.oracle.graal.python.builtins.CoreFunctions;
@@ -420,8 +420,11 @@ public abstract static class GetPidNode extends PythonBuiltinNode {
420420
@Specialization(rewriteOn = Exception.class)
421421
@TruffleBoundary
422422
long getPid() throws Exception {
423-
Path path = Paths.get("/proc/self/stat");
424-
return Long.parseLong(new String(Files.readAllBytes(path)).trim().split(" ")[0]);
423+
if (ImageInfo.inImageRuntimeCode()) {
424+
return ProcessProperties.getProcessID();
425+
}
426+
TruffleFile statFile = getContext().getPublicTruffleFileRelaxed("/proc/self/stat");
427+
return Long.parseLong(new String(statFile.readAllBytes()).trim().split(" ")[0]);
425428
}
426429

427430
@Specialization

0 commit comments

Comments
 (0)