Преглед изворни кода

kernel/scheduler: Use std::mutex instead of spin lock

Profiling shows that this is a highly contested mutex, causing dimishing
results compared to a OS lock. std::mutex implementations can spin for a
while before falling back to an OS lock.

This avoids wasting precious CPU cycles in a no-op.
ReinUsesLisp пре 6 година
родитељ
комит
9b38f4fc55
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      src/core/hle/kernel/scheduler.h

+ 1 - 1
src/core/hle/kernel/scheduler.h

@@ -188,7 +188,7 @@ private:
 
     /// Scheduler lock mechanisms.
     bool is_locked{};
-    Common::SpinLock inner_lock{};
+    std::mutex inner_lock;
     std::atomic<s64> scope_lock{};
     Core::EmuThreadHandle current_owner{Core::EmuThreadHandle::InvalidHandle()};