aboutsummaryrefslogtreecommitdiff
path: root/core/sync/primitives_darwin.odin
blob: 146f69e866e4016b7489579ff79631bc3b06ebad (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.framework"

_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)
}