Răsfoiți Sursa

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 ani în urmă
părinte
comite
9b38f4fc55
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  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.
     /// Scheduler lock mechanisms.
     bool is_locked{};
     bool is_locked{};
-    Common::SpinLock inner_lock{};
+    std::mutex inner_lock;
     std::atomic<s64> scope_lock{};
     std::atomic<s64> scope_lock{};
     Core::EmuThreadHandle current_owner{Core::EmuThreadHandle::InvalidHandle()};
     Core::EmuThreadHandle current_owner{Core::EmuThreadHandle::InvalidHandle()};