diff options
author | Fernando S <fsahmkow27@gmail.com> | 2022-11-30 16:41:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-30 16:41:32 +0100 |
commit | 4e89979c87dfa77f0c55b03a5aaf00706276c2f0 (patch) | |
tree | 50fcec585d4b33e0d2a3ed6e25d40d1c3bf19370 /src/core | |
parent | Merge pull request #9349 from lat9nq/cmake-322 (diff) | |
parent | audio_core: sink_stream: Hold the suspend lock when process is stalled. (diff) | |
download | yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.tar yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.tar.gz yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.tar.bz2 yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.tar.lz yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.tar.xz yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.tar.zst yuzu-4e89979c87dfa77f0c55b03a5aaf00706276c2f0.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/core.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index d8934be52..94d4e2212 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -189,7 +189,7 @@ struct System::Impl { kernel.Suspend(false); core_timing.SyncPause(false); - is_paused = false; + is_paused.store(false, std::memory_order_relaxed); return status; } @@ -200,14 +200,13 @@ struct System::Impl { core_timing.SyncPause(true); kernel.Suspend(true); - is_paused = true; + is_paused.store(true, std::memory_order_relaxed); return status; } bool IsPaused() const { - std::unique_lock lk(suspend_guard); - return is_paused; + return is_paused.load(std::memory_order_relaxed); } std::unique_lock<std::mutex> StallProcesses() { @@ -218,7 +217,7 @@ struct System::Impl { } void UnstallProcesses() { - if (!is_paused) { + if (!IsPaused()) { core_timing.SyncPause(false); kernel.Suspend(false); } @@ -465,7 +464,7 @@ struct System::Impl { } mutable std::mutex suspend_guard; - bool is_paused{}; + std::atomic_bool is_paused{}; std::atomic<bool> is_shutting_down{}; Timing::CoreTiming core_timing; |