diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2023-06-23 09:27:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-23 09:27:14 -0400 |
| commit | a6740224346db3c86944783e2b91dc7180c05537 (patch) | |
| tree | af122b8a75d07f25113ef277aa25b2fdca14d05f /src/core/hle/service/nvnflinger/nvnflinger.cpp | |
| parent | 87b9b5d10fa4a30c8eb56f9de44ba0c24d57ae77 (diff) | |
| parent | 1586f1c0b174bec6b1db7de48b46ff75e29f3bb2 (diff) | |
Merge pull request #10859 from liamwhite/no-more-atomic-wait
general: remove atomic signal and wait
Diffstat (limited to 'src/core/hle/service/nvnflinger/nvnflinger.cpp')
| -rw-r--r-- | src/core/hle/service/nvnflinger/nvnflinger.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/core/hle/service/nvnflinger/nvnflinger.cpp b/src/core/hle/service/nvnflinger/nvnflinger.cpp index b41c6240c..5f55cd31e 100644 --- a/src/core/hle/service/nvnflinger/nvnflinger.cpp +++ b/src/core/hle/service/nvnflinger/nvnflinger.cpp @@ -43,14 +43,10 @@ void Nvnflinger::SplitVSync(std::stop_token stop_token) { Common::SetCurrentThreadPriority(Common::ThreadPriority::High); while (!stop_token.stop_requested()) { - vsync_signal.wait(false); - vsync_signal.store(false); - - guard->lock(); + vsync_signal.Wait(); + const auto lock_guard = Lock(); Compose(); - - guard->unlock(); } } @@ -69,9 +65,8 @@ Nvnflinger::Nvnflinger(Core::System& system_, HosBinderDriverServer& hos_binder_ "ScreenComposition", [this](std::uintptr_t, s64 time, std::chrono::nanoseconds ns_late) -> std::optional<std::chrono::nanoseconds> { - vsync_signal.store(true); { const auto lock_guard = Lock(); } - vsync_signal.notify_one(); + vsync_signal.Set(); return std::chrono::nanoseconds(GetNextTicks()); }); @@ -97,8 +92,7 @@ Nvnflinger::~Nvnflinger() { if (system.IsMulticore()) { system.CoreTiming().UnscheduleEvent(multi_composition_event, {}); vsync_thread.request_stop(); - vsync_signal.store(true); - vsync_signal.notify_all(); + vsync_signal.Set(); } else { system.CoreTiming().UnscheduleEvent(single_composition_event, {}); } |
