Use Acquire semantics for the futex_wait load shortcut

This commit is contained in:
gingerBill
2022-04-27 15:57:47 +01:00
parent d6cfb60506
commit 10cd294cf2

View File

@@ -195,7 +195,7 @@ sema_wait_with_timeout :: proc(s: ^Sema, duration: time.Duration) -> bool {
Futex :: distinct u32
futex_wait :: proc(f: ^Futex, expected: u32) {
if u32(atomic_load(f)) != expected {
if u32(atomic_load_explicit(f, .Acquire)) != expected {
return
}
@@ -204,7 +204,7 @@ futex_wait :: proc(f: ^Futex, expected: u32) {
// returns true if the wait happened within the duration, false if it exceeded the time duration
futex_wait_with_timeout :: proc(f: ^Futex, expected: u32, duration: time.Duration) -> bool {
if u32(atomic_load(f)) != expected {
if u32(atomic_load_explicit(f, .Acquire)) != expected {
return true
}
if duration <= 0 {