From d12a5a6525c95e825a3094e8069cc54938eb8045 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Tue, 31 Jan 2017 16:06:37 +0100 Subject: [PATCH] make getThreadId() work on OSX --- lib/system/threads.nim | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/system/threads.nim b/lib/system/threads.nim index be0b91c66..3dadfc683 100644 --- a/lib/system/threads.nim +++ b/lib/system/threads.nim @@ -205,11 +205,13 @@ else: ## get the ID of the currently running thread. result = int(syscall(SYS_gettid)) elif defined(macosx) or defined(bsd): - proc pthread_main_np(): cint {.importc, header: "pthread.h".} + proc pthread_threadid_np(y: pointer; x: var uint64): cint {.importc, header: "pthread.h".} proc getThreadId*(): int = ## get the ID of the currently running thread. - result = int(pthread_main_np()) + var x: uint64 + result = pthread_threadid_np(nil, x) + result = int(x) elif defined(solaris): # just a guess really: type thread_t {.importc: "thread_t", header: "".} = distinct int