From 600c0ea5bab5e67e8fb2028be9c4c5b956f7cb67 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Wed, 25 Nov 2020 04:01:53 +0300 Subject: [PATCH] atomic.cpp: fix windows/std path Always check condition after rearming internal semaphore. --- rpcs3/util/atomic.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/rpcs3/util/atomic.cpp b/rpcs3/util/atomic.cpp index 8f90a7fa4a..052e599748 100644 --- a/rpcs3/util/atomic.cpp +++ b/rpcs3/util/atomic.cpp @@ -1231,8 +1231,7 @@ atomic_wait_engine::wait(const void* data, u32 size, __m128i old_value, u64 time break; } } - - if (timeout + 1) + else if (timeout + 1) { cond->cv->wait_for(lock, std::chrono::nanoseconds(timeout)); } @@ -1258,15 +1257,11 @@ atomic_wait_engine::wait(const void* data, u32 size, __m128i old_value, u64 time { break; } - - fallback = false; - break; } fallback = false; } - - if (NtWaitForAlertByThreadId) + else if (NtWaitForAlertByThreadId) { switch (DWORD status = NtWaitForAlertByThreadId(cond, timeout + 1 ? &qw : nullptr)) {