From f272a5f779229c42d1febc00c91f6d6e7f9b7b61 Mon Sep 17 00:00:00 2001 From: elad Date: Sat, 2 Mar 2019 08:13:46 +0200 Subject: [PATCH] sys_lwmutex fixup after #5680 sys_lwcond_wait unlocks always with the 'usual' unlocking flags --- rpcs3/Emu/Cell/lv2/sys_lwcond.cpp | 2 +- rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp b/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp index 00353b2787..2521084c6f 100644 --- a/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp @@ -282,7 +282,7 @@ error_code _sys_lwcond_queue_wait(ppu_thread& ppu, u32 lwcond_id, u32 lwmutex_id return cpu; } - mutex->signaled.release(1); + mutex->signaled |= 1; return nullptr; }); diff --git a/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp b/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp index bc5372d7a0..d48a7427f3 100644 --- a/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp @@ -15,10 +15,7 @@ extern u64 get_system_time(); error_code _sys_lwmutex_create(vm::ptr lwmutex_id, u32 protocol, vm::ptr control, s32 has_name, u64 name) { - sys_lwmutex.warning("_sys_lwmutex_create(lwmutex_id=*0x%x, protocol=0x%x, control=*0x%x, arg4=0x%x, name=0x%llx, arg6=0x%x)", lwmutex_id, protocol, control, has_name, name); - - if (protocol == SYS_SYNC_RETRY) - sys_lwmutex.todo("_sys_lwmutex_create(): SYS_SYNC_RETRY"); + sys_lwmutex.warning("_sys_lwmutex_create(lwmutex_id=*0x%x, protocol=0x%x, control=*0x%x, has_name=0x%x, name=0x%llx)", lwmutex_id, protocol, control, has_name, name); if (protocol != SYS_SYNC_FIFO && protocol != SYS_SYNC_RETRY && protocol != SYS_SYNC_PRIORITY) {