Kernel: Correct redundant yields to only advance time forward.

master
Fernando Sahmkow 2019-10-08 18:35:04 +07:00 committed by FernandoS27
parent 7176857177
commit 27d571c084
1 changed files with 5 additions and 3 deletions

@ -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