From ed8f293b4f4c340dc342e54532fcdd953056efab Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 22 Jun 2017 05:42:14 -0700 Subject: Change "blocking" BlockingLoop::Stop to give up and die after a timeout. This fixes the global-static fifo object causing infinite hangs in some cases. Notably, failure to initialize a graphics backend would result in BlockingLoop::Prepare being called but never executing Run(), leaving the object in a bad state. --- Source/Core/VideoCommon/Fifo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/VideoCommon/Fifo.cpp') diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp index cedbea5432..15a1853ee7 100644 --- a/Source/Core/VideoCommon/Fifo.cpp +++ b/Source/Core/VideoCommon/Fifo.cpp @@ -144,7 +144,7 @@ void ExitGpuLoop() // Terminate GPU thread loop s_emu_running_state.Set(); - s_gpu_mainloop.Stop(false); + s_gpu_mainloop.Stop(s_gpu_mainloop.kNonBlock); } void EmulatorState(bool running) -- cgit v1.2.3