common/threadsafe_queue: Provide Wait() method.

It shall block until there is something to consume in the queue.

And use it for the GPU emulation instead of the spin loop.
This is only in booting the emulator, however in BOTW this is the case for about 1 second.
This commit is contained in:
Markus Wick 2021-04-06 20:30:22 +02:00
parent 7b2593bf33
commit b529aba9ce
2 changed files with 10 additions and 3 deletions

View file

@ -29,8 +29,7 @@ static void RunThread(Core::System& system, VideoCore::RendererBase& renderer,
system.RegisterHostThread();
// Wait for first GPU command before acquiring the window context
while (state.queue.Empty())
;
state.queue.Wait();
// If emulation was stopped during disk shader loading, abort before trying to acquire context
if (!state.is_running) {