Merge pull request #703 from oskarnp/darwin_thread_id

Implement os.current_thread_id() for Darwin (assumes OSX 10.6 / iOS 3…
This commit is contained in:
gingerBill
2020-07-22 22:27:02 +01:00
committed by GitHub

View File

@@ -2,6 +2,7 @@ package os
foreign import dl "system:dl"
foreign import libc "system:c"
foreign import pthread "system:pthread"
import "core:runtime"
import "core:strings"
@@ -428,8 +429,13 @@ exit :: inline proc(code: int) -> ! {
}
current_thread_id :: proc "contextless" () -> int {
// return int(_unix_gettid());
return 0;
tid: u64;
// NOTE(Oskar): available from OSX 10.6 and iOS 3.2.
// For older versions there is `syscall(SYS_thread_selfid)`, but not really
// the same thing apparently.
foreign pthread { pthread_threadid_np :: proc "c" (rawptr, ^u64) -> c.int ---; }
pthread_threadid_np(nil, &tid);
return int(tid);
}
dlopen :: inline proc(filename: string, flags: int) -> rawptr {