From 7b53dbeb8afe110f90347c171cd28c317ac762d0 Mon Sep 17 00:00:00 2001 From: Stan Irvin-Wilmot Date: Wed, 10 Jan 2024 15:53:00 +0000 Subject: [PATCH] fix loop condition on compare_exhange_strong result in semaphore_wait - it was backwards so would loop on success and bail on fail --- src/threading.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/threading.cpp b/src/threading.cpp index 74aa3eb7e..c283da425 100644 --- a/src/threading.cpp +++ b/src/threading.cpp @@ -210,7 +210,7 @@ gb_internal void semaphore_wait(Semaphore *s) { original_count = s->count().load(std::memory_order_relaxed); } - if (!s->count().compare_exchange_strong(original_count, original_count-1, std::memory_order_acquire, std::memory_order_acquire)) { + if (s->count().compare_exchange_strong(original_count, original_count-1, std::memory_order_acquire, std::memory_order_acquire)) { return; } }