sync: add `sync.thread_id() u64 {` (#13810)

pull/13758/head^2
Delyan Angelov 2022-03-23 18:19:14 +02:00 committed by GitHub
parent 2e963e36ac
commit ce576d01c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,7 @@
module sync
fn C.pthread_self() usize
pub fn thread_id() u64 {
return u64(C.pthread_self())
}

View File

@ -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
}

View File

@ -0,0 +1,7 @@
module sync
fn C.GetCurrentThreadId() u32
pub fn thread_id() u64 {
return u64(C.GetCurrentThreadId())
}