diff --git a/rpcs3/Emu/Cell/lv2/sys_timer.cpp b/rpcs3/Emu/Cell/lv2/sys_timer.cpp index 8128964545..4f42b33d88 100644 --- a/rpcs3/Emu/Cell/lv2/sys_timer.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_timer.cpp @@ -115,7 +115,7 @@ void lv2_timer_thread::operator()() { u64 sleep_time = 0; - while (thread_ctrl::state() != thread_state::aborting) + while (true) { if (sleep_time != umax) { @@ -125,6 +125,11 @@ void lv2_timer_thread::operator()() thread_ctrl::wait_for(sleep_time); + if (thread_ctrl::state() == thread_state::aborting) + { + break; + } + sleep_time = umax; if (Emu.IsPaused())