diff --git a/rpcs3/Emu/Cell/lv2/sys_rwlock.cpp b/rpcs3/Emu/Cell/lv2/sys_rwlock.cpp index 17b945dc1a..f74050ba94 100644 --- a/rpcs3/Emu/Cell/lv2/sys_rwlock.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_rwlock.cpp @@ -371,6 +371,10 @@ error_code sys_rwlock_wlock(ppu_thread& ppu, u32 rw_lock_id, u64 timeout) lv2_obj::awake_all(); } + else if (rwlock->rq.empty() && rwlock->wq.empty()) + { + rwlock->owner &= -2; + } ppu.gpr[3] = CELL_ETIMEDOUT; break;