sync: add `sync.thread_id() u64 {` (#13810)
parent
2e963e36ac
commit
ce576d01c4
|
@ -0,0 +1,7 @@
|
||||||
|
module sync
|
||||||
|
|
||||||
|
fn C.pthread_self() usize
|
||||||
|
|
||||||
|
pub fn thread_id() u64 {
|
||||||
|
return u64(C.pthread_self())
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
import sync
|
||||||
|
|
||||||
|
fn simple_thread() u64 {
|
||||||
|
tid := sync.thread_id()
|
||||||
|
eprintln('simple_thread thread_id: $tid.hex()')
|
||||||
|
return tid
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_sync_thread_id() {
|
||||||
|
mtid := sync.thread_id()
|
||||||
|
eprintln('main thread_id: $sync.thread_id().hex()')
|
||||||
|
x := go simple_thread()
|
||||||
|
y := go simple_thread()
|
||||||
|
xtid := x.wait()
|
||||||
|
ytid := y.wait()
|
||||||
|
eprintln('main thread_id: $sync.thread_id().hex()')
|
||||||
|
dump(xtid.hex())
|
||||||
|
dump(ytid.hex())
|
||||||
|
assert mtid != xtid
|
||||||
|
assert mtid != ytid
|
||||||
|
assert xtid != ytid
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
module sync
|
||||||
|
|
||||||
|
fn C.GetCurrentThreadId() u32
|
||||||
|
|
||||||
|
pub fn thread_id() u64 {
|
||||||
|
return u64(C.GetCurrentThreadId())
|
||||||
|
}
|
Loading…
Reference in New Issue