diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-11-14 18:23:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-14 18:23:11 +0100 |
commit | 9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614 (patch) | |
tree | 79adeb345dc422ae213054bfc7bc0a91f1094c47 | |
parent | Merge pull request #12025 from liamwhite/kernel-shutdown-deadlock (diff) | |
parent | core_timing: lock event queue access (diff) | |
download | yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.tar yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.tar.gz yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.tar.bz2 yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.tar.lz yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.tar.xz yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.tar.zst yuzu-9a5ef835cc8cf3d9fb8fa791d03a43ae4472d614.zip |
-rw-r--r-- | src/core/core_timing.cpp | 2 | ||||
-rw-r--r-- | src/core/core_timing.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/core/core_timing.cpp b/src/core/core_timing.cpp index e671b270f..d6b5abc68 100644 --- a/src/core/core_timing.cpp +++ b/src/core/core_timing.cpp @@ -76,6 +76,7 @@ void CoreTiming::Initialize(std::function<void()>&& on_thread_init_) { } void CoreTiming::ClearPendingEvents() { + std::scoped_lock lock{basic_lock}; event_queue.clear(); } @@ -113,6 +114,7 @@ bool CoreTiming::IsRunning() const { } bool CoreTiming::HasPendingEvents() const { + std::scoped_lock lock{basic_lock}; return !(wait_set && event_queue.empty()); } diff --git a/src/core/core_timing.h b/src/core/core_timing.h index 26a8b93a7..21548f0a9 100644 --- a/src/core/core_timing.h +++ b/src/core/core_timing.h @@ -161,7 +161,7 @@ private: std::shared_ptr<EventType> ev_lost; Common::Event event{}; Common::Event pause_event{}; - std::mutex basic_lock; + mutable std::mutex basic_lock; std::mutex advance_lock; std::unique_ptr<std::jthread> timer_thread; std::atomic<bool> paused{}; |