diff --git a/src/common/thread.cpp b/src/common/thread.cpp
index 924f0df1b3..919e33af92 100644
--- a/src/common/thread.cpp
+++ b/src/common/thread.cpp
@@ -62,8 +62,7 @@ void SetCurrentThreadPriority(ThreadPriority new_priority) {
 void SetCurrentThreadPriority(ThreadPriority new_priority) {
     pthread_t this_thread = pthread_self();
 
-    const auto scheduling_type =
-        new_priority != ThreadPriority::Critical ? SCHED_OTHER : SCHED_FIFO;
+    const auto scheduling_type = SCHED_OTHER;
     s32 max_prio = sched_get_priority_max(scheduling_type);
     s32 min_prio = sched_get_priority_min(scheduling_type);
     u32 level = std::max(static_cast<u32>(new_priority) + 1, 4U);
diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp
index 427a382cdf..0b89f9ed2e 100644
--- a/src/common/x64/native_clock.cpp
+++ b/src/common/x64/native_clock.cpp
@@ -5,6 +5,7 @@
 #include <chrono>
 #include <thread>
 
+#include "common/atomic_ops.h"
 #include "common/uint128.h"
 #include "common/x64/native_clock.h"
 
diff --git a/src/tests/core/core_timing.cpp b/src/tests/core/core_timing.cpp
index 62eb437538..e687416a81 100644
--- a/src/tests/core/core_timing.cpp
+++ b/src/tests/core/core_timing.cpp
@@ -8,6 +8,7 @@
 #include <chrono>
 #include <cstdlib>
 #include <memory>
+#include <mutex>
 #include <string>
 
 #include "core/core.h"
@@ -21,9 +22,11 @@ std::array<s64, 5> delays{};
 
 std::bitset<CB_IDS.size()> callbacks_ran_flags;
 u64 expected_callback = 0;
+std::mutex control_mutex;
 
 template <unsigned int IDX>
 void HostCallbackTemplate(std::uintptr_t user_data, std::chrono::nanoseconds ns_late) {
+    std::unique_lock<std::mutex> lk(control_mutex);
     static_assert(IDX < CB_IDS.size(), "IDX out of range");
     callbacks_ran_flags.set(IDX);
     REQUIRE(CB_IDS[IDX] == user_data);