diff options
Diffstat (limited to 'core/sync/sync_linux.odin')
| -rw-r--r-- | core/sync/sync_linux.odin | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/sync/sync_linux.odin b/core/sync/sync_linux.odin index 74f2b1e87..aa3c7a068 100644 --- a/core/sync/sync_linux.odin +++ b/core/sync/sync_linux.odin @@ -2,6 +2,18 @@ package sync import "core:sys/unix" +foreign import libc "system:c" + +current_thread_id :: proc "contextless" () -> int { + foreign libc { + syscall :: proc(number: i32, #c_vararg args: ..any) -> i32 --- + } + + SYS_GETTID :: 186; + return int(syscall(SYS_GETTID)); +} + + // The Darwin docs say it best: // A semaphore is much like a lock, except that a finite number of threads can hold it simultaneously. // Semaphores can be thought of as being much like piles of tokens; multiple threads can take these tokens, |