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.
This commit is contained in:
Shawn Hoffman
2017-06-22 05:42:14 -07:00
parent 88b442e1a8
commit ed8f293b4f
2 changed files with 21 additions and 4 deletions

View File

@ -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)