aboutsummaryrefslogtreecommitdiff
path: root/core/sync/primitives_darwin.odin
blob: 4ae4b77898d31a15bc16816200142c62b2fd6651 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#+build darwin
#+private
package sync

import "core:c"
import "base:intrinsics"

foreign import pthread "system:System"

_current_thread_id :: proc "contextless" () -> int {
	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)
}