From 96324342438a5ce16ab9fbec6d8c17756ef166ff Mon Sep 17 00:00:00 2001
From: Liam <byteslice@airmail.cc>
Date: Sat, 8 Oct 2022 18:27:40 -0400
Subject: [PATCH] core_timing: use high-precision sleeps on non-Windows targets

---
 src/core/core_timing.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/core/core_timing.cpp b/src/core/core_timing.cpp
index 6c0fcb7b54..2678ce5328 100644
--- a/src/core/core_timing.cpp
+++ b/src/core/core_timing.cpp
@@ -270,6 +270,7 @@ void CoreTiming::ThreadLoop() {
                 // There are more events left in the queue, wait until the next event.
                 const auto wait_time = *next_time - GetGlobalTimeNs().count();
                 if (wait_time > 0) {
+#ifdef _WIN32
                     // Assume a timer resolution of 1ms.
                     static constexpr s64 TimerResolutionNS = 1000000;
 
@@ -287,6 +288,9 @@ void CoreTiming::ThreadLoop() {
                     if (event.IsSet()) {
                         event.Reset();
                     }
+#else
+                    event.WaitFor(std::chrono::nanoseconds(wait_time));
+#endif
                 }
             } else {
                 // Queue is empty, wait until another event is scheduled and signals us to continue.