From c15b5f1ecabfcb0d7d57ef97049e882879cd0067 Mon Sep 17 00:00:00 2001 From: Eladash Date: Thu, 4 Jun 2020 14:27:23 +0300 Subject: [PATCH] SPU: Move check_state() outside of mutex scope Can result in a deadlock in some cases, cpu flags are checked after this function as well anyways. --- rpcs3/Emu/Cell/SPUThread.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 43e8a36d4e..65bfc676ef 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -3028,7 +3028,6 @@ bool spu_thread::stop_and_signal(u32 code) if (!lv2_event_queue::check(queue)) { - check_state(); return ch_in_mbox.set_values(1, CELL_EINVAL), true; } @@ -3036,7 +3035,6 @@ bool spu_thread::stop_and_signal(u32 code) if (!queue->exists) { - check_state(); return ch_in_mbox.set_values(1, CELL_EINVAL), true; } @@ -3065,7 +3063,6 @@ bool spu_thread::stop_and_signal(u32 code) const auto data3 = static_cast(std::get<3>(event)); ch_in_mbox.set_values(4, CELL_OK, data1, data2, data3); queue->events.pop_front(); - check_state(); return true; } } @@ -3113,7 +3110,6 @@ bool spu_thread::stop_and_signal(u32 code) } } - check_state(); return true; }