From 1e5f6ba39c5f6abb6b18643bd365ae4dff12df63 Mon Sep 17 00:00:00 2001 From: Elad Ashkenazi <18193363+elad335@users.noreply.github.com> Date: Tue, 11 Jun 2024 18:31:57 +0300 Subject: [PATCH] Fix sys_lwmutex_lock for SYS_SYNC_RETRY --- rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp b/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp index d1d1738070..cfe5b7f933 100644 --- a/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp @@ -144,7 +144,7 @@ error_code _sys_lwmutex_lock(ppu_thread& ppu, u32 lwmutex_id, u64 timeout) { if (s32 signal = mutex.lv2_control.fetch_op([](auto& data) { - if (data.signaled == 1) + if (data.signaled) { data.signaled = 0; return true; @@ -153,7 +153,7 @@ error_code _sys_lwmutex_lock(ppu_thread& ppu, u32 lwmutex_id, u64 timeout) return false; }).first.signaled) { - if (signal == smin) + if (~signal & 1) { ppu.gpr[3] = CELL_EBUSY; } @@ -167,7 +167,7 @@ error_code _sys_lwmutex_lock(ppu_thread& ppu, u32 lwmutex_id, u64 timeout) if (s32 signal = mutex.try_own(&ppu)) { - if (signal == smin) + if (~signal & 1) { ppu.gpr[3] = CELL_EBUSY; }