3
0
Fork 0
forked from suyu/suyu

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.
This commit is contained in:
ReinUsesLisp 2020-07-12 21:27:24 -03:00
parent f1d8c83e1c
commit 9b38f4fc55

View file

@ -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()};