summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/kernel/svc.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 823d1d403..101f72b7d 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -1577,10 +1577,12 @@ static void SleepThread(Core::System& system, s64 nanoseconds) {
}
if (redundant) {
- system.CoreTiming().Idle();
- } else {
- system.PrepareReschedule(current_thread->GetProcessorID());
+ // If it's redundant, the core is pretty much idle. Some games keep idling
+ // a core while it's doing nothing, we advance timing to avoid costly continuos
+ // calls.
+ system.CoreTiming().AddTicks(2000);
}
+ system.PrepareReschedule(current_thread->GetProcessorID());
}
/// Wait process wide key atomic