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.
This commit is contained in:
parent
17bf40f405
commit
ab63a193d7
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user