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