diff --git a/lib/process/const_linux_arm.q b/lib/process/const_linux_arm.q index b3f8929..434c94c 100644 --- a/lib/process/const_linux_arm.q +++ b/lib/process/const_linux_arm.q @@ -1,5 +1,6 @@ const { _clone = 220 _execve = 221 + _getpid = 172 _wait4 = 260 } \ No newline at end of file diff --git a/lib/process/const_linux_x86.q b/lib/process/const_linux_x86.q index 9ac338a..2ac4d11 100644 --- a/lib/process/const_linux_x86.q +++ b/lib/process/const_linux_x86.q @@ -1,5 +1,6 @@ const { _clone = 56 _execve = 59 + _getpid = 39 _wait4 = 61 } \ No newline at end of file diff --git a/lib/process/fork_mac.q b/lib/process/fork_mac.q index f6bb188..3c7d9e7 100644 --- a/lib/process/fork_mac.q +++ b/lib/process/fork_mac.q @@ -1,13 +1,9 @@ fork() -> int { pid := syscall(_fork) - if pid == getpid() { + if pid == id() { return 0 } return pid -} - -getpid() -> int { - return syscall(_getpid) } \ No newline at end of file diff --git a/lib/process/id_unix.q b/lib/process/id_unix.q new file mode 100644 index 0000000..2210ed4 --- /dev/null +++ b/lib/process/id_unix.q @@ -0,0 +1,3 @@ +id() -> int { + return syscall(_getpid) +} \ No newline at end of file diff --git a/lib/process/id_windows.q b/lib/process/id_windows.q new file mode 100644 index 0000000..2badc52 --- /dev/null +++ b/lib/process/id_windows.q @@ -0,0 +1,9 @@ +id() -> int { + return kernel32.GetCurrentProcessId() +} + +extern { + kernel32 { + GetCurrentProcessId() -> int + } +} \ No newline at end of file