summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/scheduler.cpp
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-12-02 00:44:40 -0500
committerGravatar Zach Hilman2018-12-02 00:44:40 -0500
commit3476830b26b61410b633c827e985bffa1dc52528 (patch)
treecedba8440c12c3d8edeb78f33de5c56f2488b60f /src/core/hle/kernel/scheduler.cpp
parentscheduler: Add explanations for YieldWith and WithoutLoadBalancing (diff)
downloadyuzu-3476830b26b61410b633c827e985bffa1dc52528.tar.gz
yuzu-3476830b26b61410b633c827e985bffa1dc52528.tar.xz
yuzu-3476830b26b61410b633c827e985bffa1dc52528.zip
svc: Avoid performance-degrading unnecessary reschedule
Diffstat (limited to 'src/core/hle/kernel/scheduler.cpp')
-rw-r--r--src/core/hle/kernel/scheduler.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp
index 624c841ad..efe3551e2 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -207,8 +207,8 @@ void Scheduler::YieldWithoutLoadBalancing(Thread* thread) {
207 ASSERT(thread->GetPriority() < THREADPRIO_COUNT); 207 ASSERT(thread->GetPriority() < THREADPRIO_COUNT);
208 208
209 // Yield this thread 209 // Yield this thread
210 MoveThreadToBackOfPriorityQueue(thread, thread->GetPriority());
211 Reschedule(); 210 Reschedule();
211 MoveThreadToBackOfPriorityQueue(thread, thread->GetPriority());
212} 212}
213 213
214void Scheduler::YieldWithLoadBalancing(Thread* thread) { 214void Scheduler::YieldWithLoadBalancing(Thread* thread) {
@@ -223,6 +223,7 @@ void Scheduler::YieldWithLoadBalancing(Thread* thread) {
223 ASSERT(priority < THREADPRIO_COUNT); 223 ASSERT(priority < THREADPRIO_COUNT);
224 224
225 // Reschedule thread to end of queue. 225 // Reschedule thread to end of queue.
226 Reschedule();
226 MoveThreadToBackOfPriorityQueue(thread, priority); 227 MoveThreadToBackOfPriorityQueue(thread, priority);
227 228
228 Thread* suggested_thread = nullptr; 229 Thread* suggested_thread = nullptr;