summaryrefslogtreecommitdiffstats
path: root/src/audio_core/renderer/system_manager.cpp
diff options
context:
space:
mode:
authorKelebek1 <eeeedddccc@hotmail.co.uk>2023-05-10 18:59:21 +0200
committerKelebek1 <eeeedddccc@hotmail.co.uk>2023-05-18 14:03:32 +0200
commitd75bcdd07793954e6c33ba131871c183492b32b0 (patch)
treedcdacfe32430c6a33553dc7ae440c4a7011ef9ab /src/audio_core/renderer/system_manager.cpp
parentMerge pull request #10365 from lat9nq/anv_push_descriptor (diff)
downloadyuzu-d75bcdd07793954e6c33ba131871c183492b32b0.tar
yuzu-d75bcdd07793954e6c33ba131871c183492b32b0.tar.gz
yuzu-d75bcdd07793954e6c33ba131871c183492b32b0.tar.bz2
yuzu-d75bcdd07793954e6c33ba131871c183492b32b0.tar.lz
yuzu-d75bcdd07793954e6c33ba131871c183492b32b0.tar.xz
yuzu-d75bcdd07793954e6c33ba131871c183492b32b0.tar.zst
yuzu-d75bcdd07793954e6c33ba131871c183492b32b0.zip
Diffstat (limited to '')
-rw-r--r--src/audio_core/renderer/system_manager.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/audio_core/renderer/system_manager.cpp b/src/audio_core/renderer/system_manager.cpp
index 07d8ed093..300ecdbf1 100644
--- a/src/audio_core/renderer/system_manager.cpp
+++ b/src/audio_core/renderer/system_manager.cpp
@@ -27,7 +27,7 @@ bool SystemManager::InitializeUnsafe() {
if (!active) {
if (adsp.Start()) {
active = true;
- thread = std::jthread([this](std::stop_token stop_token) { ThreadFunc(); });
+ thread = std::jthread([this](std::stop_token stop_token) { ThreadFunc(stop_token); });
}
}
@@ -39,8 +39,7 @@ void SystemManager::Stop() {
return;
}
active = false;
- update.store(true);
- update.notify_all();
+ thread.request_stop();
thread.join();
adsp.Stop();
}
@@ -85,12 +84,12 @@ bool SystemManager::Remove(System& system_) {
return true;
}
-void SystemManager::ThreadFunc() {
+void SystemManager::ThreadFunc(std::stop_token stop_token) {
static constexpr char name[]{"AudioRenderSystemManager"};
MicroProfileOnThreadCreate(name);
Common::SetCurrentThreadName(name);
Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
- while (active) {
+ while (active && !stop_token.stop_requested()) {
{
std::scoped_lock l{mutex1};