diff options
| author | lizzie <lizzie@eden-emu.dev> | 2026-02-09 01:14:32 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-02-09 01:14:32 +0100 |
| commit | a56b8d3de8af670fb1d8c70211ca5275c1aa4c52 (patch) | |
| tree | 4f22fa19d83051a390149700218529349a8d0b7b /src/core/core_timing.cpp | |
| parent | e544cb3cf6702fdec9ce2edc9f601a9e37d91153 (diff) | |
[core, windows] remove microSleep() and simply wait on events like on linux (#3498)
we shall see if the original code was put there for a reason
or if the microsleeps actually are horrid
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3498
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/core/core_timing.cpp')
| -rw-r--r-- | src/core/core_timing.cpp | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/src/core/core_timing.cpp b/src/core/core_timing.cpp index 5a582c8cff..b0fa7cd503 100644 --- a/src/core/core_timing.cpp +++ b/src/core/core_timing.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project @@ -13,10 +13,6 @@ #include "common/windows/timer_resolution.h" #endif -#ifdef ARCHITECTURE_x86_64 -#include "common/x64/cpu_wait.h" -#endif - #include "common/settings.h" #include "core/core_timing.h" #include "core/hardware_properties.h" @@ -287,28 +283,7 @@ void CoreTiming::ThreadLoop() { if (next_time) { // There are more events left in the queue, wait until the next event. auto wait_time = *next_time - GetGlobalTimeNs().count(); - if (wait_time > 0) { -#ifdef _WIN32 - while (!paused && !event.IsSet() && wait_time > 0) { - wait_time = *next_time - GetGlobalTimeNs().count(); - if (wait_time >= timer_resolution_ns) { - Common::Windows::SleepForOneTick(); - } else { -#ifdef ARCHITECTURE_x86_64 - Common::X64::MicroSleep(); -#else - std::this_thread::yield(); -#endif - } - } - - if (event.IsSet()) { - event.Reset(); - } -#else - event.WaitFor(std::chrono::nanoseconds(wait_time)); -#endif - } + event.WaitFor(std::chrono::nanoseconds(wait_time)); } else { // Queue is empty, wait until another event is scheduled and signals us to // continue. |
