From daad7d71f9aec066ec5df89ffa69a73bf09a05ba Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Wed, 11 Mar 2015 14:45:58 +0300 Subject: [PATCH] Bugfix --- rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp b/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp index 197289b37e..9cb791bfb7 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp @@ -198,8 +198,8 @@ s32 _sys_lwcond_queue_wait(u32 lwcond_id, u32 lwmutex_id, u64 timeout) { const bool is_timedout = timeout && get_system_time() - start_time > timeout; - // check timeout (TODO) - if (is_timedout) + // check timeout only if no thread signaled in mode 1 (the flaw of avoiding sleep queue) + if (is_timedout && !cond->signaled1) { // cancel waiting cond->waiters--; assert(cond->waiters >= 0);