Fix recursive_benaphore_try_lock

Previously, if the owner called this, it would fail.
This commit is contained in:
Feoramund
2024-09-09 19:11:44 -04:00
parent 3a60109180
commit b2c2235e58

View File

@@ -474,10 +474,10 @@ recursive_benaphore_try_lock :: proc "contextless" (b: ^Recursive_Benaphore) ->
tid := current_thread_id()
if b.owner == tid {
atomic_add_explicit(&b.counter, 1, .Acquire)
}
if v, _ := atomic_compare_exchange_strong_explicit(&b.counter, 0, 1, .Acquire, .Acquire); v != 0 {
return false
} else {
if v, _ := atomic_compare_exchange_strong_explicit(&b.counter, 0, 1, .Acquire, .Acquire); v != 0 {
return false
}
}
// inside the lock
b.owner = tid