From 90a21959e7f436e7c2452eca719dd61869f34ecb Mon Sep 17 00:00:00 2001 From: riperiperi Date: Mon, 20 May 2024 19:43:38 +0100 Subject: [PATCH] Use spinwait so we don't completely blast the CPU with cmpxchg --- src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs b/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs index eddca10a5f..fe86422c6d 100644 --- a/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs +++ b/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs @@ -236,7 +236,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading private void ActivateIdleThread() { while (Interlocked.CompareExchange(ref _coreIdleLock, 1, 0) != 0) - { } + { + Thread.SpinWait(1); + } Thread.MemoryBarrier(); @@ -251,7 +253,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading private void NotifyIdleThread() { while (Interlocked.CompareExchange(ref _coreIdleLock, 1, 0) != 0) - { } + { + Thread.SpinWait(1); + } Thread.MemoryBarrier();