video_core: Fix jthread related hangs when stopping emulation

jthread on some compilers is more picky when it comes to the order in which objects are destroyed.
master
ameerj 2021-09-23 20:34:02 +07:00
parent 17bf40f405
commit ab63a193d7
2 changed files with 2 additions and 2 deletions

@ -305,7 +305,6 @@ struct System::Impl {
is_powered_on = false; is_powered_on = false;
exit_lock = false; exit_lock = false;
gpu_core.reset();
services.reset(); services.reset();
service_manager.reset(); service_manager.reset();
cheat_engine.reset(); cheat_engine.reset();
@ -315,6 +314,7 @@ struct System::Impl {
core_timing.Shutdown(); core_timing.Shutdown();
app_loader.reset(); app_loader.reset();
perf_stats.reset(); perf_stats.reset();
gpu_core.reset();
kernel.Shutdown(); kernel.Shutdown();
memory.Reset(); memory.Reset();
applet_manager.ClearAll(); applet_manager.ClearAll();

@ -212,7 +212,6 @@ private:
vk::CommandBuffer current_cmdbuf; vk::CommandBuffer current_cmdbuf;
std::unique_ptr<CommandChunk> chunk; std::unique_ptr<CommandChunk> chunk;
std::jthread worker_thread;
State state; State state;
@ -226,6 +225,7 @@ private:
std::mutex work_mutex; std::mutex work_mutex;
std::condition_variable_any work_cv; std::condition_variable_any work_cv;
std::condition_variable wait_cv; std::condition_variable wait_cv;
std::jthread worker_thread;
}; };
} // namespace Vulkan } // namespace Vulkan