Kernel: Correct redundant yields to only advance time forward.

This commit is contained in:
Fernando Sahmkow 2019-10-08 18:35:04 -04:00 committed by FernandoS27
parent 7176857177
commit 27d571c084

View file

@ -1577,10 +1577,12 @@ static void SleepThread(Core::System& system, s64 nanoseconds) {
} }
if (redundant) { if (redundant) {
system.CoreTiming().Idle(); // If it's redundant, the core is pretty much idle. Some games keep idling
} else { // a core while it's doing nothing, we advance timing to avoid costly continuos
system.PrepareReschedule(current_thread->GetProcessorID()); // calls.
system.CoreTiming().AddTicks(2000);
} }
system.PrepareReschedule(current_thread->GetProcessorID());
} }
/// Wait process wide key atomic /// Wait process wide key atomic