From b5c752fcd3411b7cfd061a04fe0ec1c4d8f08dcb Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Tue, 9 Jun 2026 14:45:22 +0200 Subject: [PATCH] Added a function to get the thread ID --- lib/thread/_linux_arm.q | 1 + lib/thread/_linux_x86.q | 1 + lib/thread/id_linux.q | 3 +++ lib/thread/id_mac.q | 6 ++++++ lib/thread/id_windows.q | 9 +++++++++ 5 files changed, 20 insertions(+) create mode 100644 lib/thread/id_linux.q create mode 100644 lib/thread/id_mac.q create mode 100644 lib/thread/id_windows.q diff --git a/lib/thread/_linux_arm.q b/lib/thread/_linux_arm.q index 49f513a..68a60f2 100644 --- a/lib/thread/_linux_arm.q +++ b/lib/thread/_linux_arm.q @@ -1,3 +1,4 @@ const { _exit = 93 + _gettid = 178 } \ No newline at end of file diff --git a/lib/thread/_linux_x86.q b/lib/thread/_linux_x86.q index 8f015db..dc95e45 100644 --- a/lib/thread/_linux_x86.q +++ b/lib/thread/_linux_x86.q @@ -1,3 +1,4 @@ const { _exit = 60 + _gettid = 186 } \ No newline at end of file diff --git a/lib/thread/id_linux.q b/lib/thread/id_linux.q new file mode 100644 index 0000000..c2ab077 --- /dev/null +++ b/lib/thread/id_linux.q @@ -0,0 +1,3 @@ +id() -> int { + return syscall(_gettid) +} \ No newline at end of file diff --git a/lib/thread/id_mac.q b/lib/thread/id_mac.q new file mode 100644 index 0000000..8bbd62a --- /dev/null +++ b/lib/thread/id_mac.q @@ -0,0 +1,6 @@ +import io + +id() -> int { + io.write("thread.id: not implemented on Mac\n") + return 0 +} \ No newline at end of file diff --git a/lib/thread/id_windows.q b/lib/thread/id_windows.q new file mode 100644 index 0000000..3f314b8 --- /dev/null +++ b/lib/thread/id_windows.q @@ -0,0 +1,9 @@ +id() -> int { + return kernel32.GetCurrentThreadId() +} + +extern { + kernel32 { + GetCurrentThreadId() -> int + } +} \ No newline at end of file -- 2.51.2