summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/scheduler.cpp
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2020-03-08 12:51:24 -0400
committerGravatar Fernando Sahmkow2020-06-27 11:35:40 -0400
commit6515c6e8c699584528486341579cf3a8dde3eea4 (patch)
tree1663248cbd02cc0db108ed18feef5a994e44d63d /src/core/hle/kernel/scheduler.cpp
parentScheduler: Correct yields. (diff)
downloadyuzu-6515c6e8c699584528486341579cf3a8dde3eea4.tar.gz
yuzu-6515c6e8c699584528486341579cf3a8dde3eea4.tar.xz
yuzu-6515c6e8c699584528486341579cf3a8dde3eea4.zip
Kernel: Fixes, corrections and asserts to scheduler and different svcs.
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 ab17204bb..5322f0aae 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -133,6 +133,7 @@ u32 GlobalScheduler::SelectThreads() {
133 u32 cores_needing_context_switch{}; 133 u32 cores_needing_context_switch{};
134 for (u32 core = 0; core < Core::Hardware::NUM_CPU_CORES; core++) { 134 for (u32 core = 0; core < Core::Hardware::NUM_CPU_CORES; core++) {
135 Scheduler& sched = kernel.Scheduler(core); 135 Scheduler& sched = kernel.Scheduler(core);
136 ASSERT(top_threads[core] == nullptr || top_threads[core]->GetProcessorID() == core);
136 if (update_thread(top_threads[core], sched)) { 137 if (update_thread(top_threads[core], sched)) {
137 cores_needing_context_switch |= (1ul << core); 138 cores_needing_context_switch |= (1ul << core);
138 } 139 }
@@ -244,7 +245,7 @@ bool GlobalScheduler::YieldThreadAndWaitForLoadBalancing(Thread* yielding_thread
244 winner = yielding_thread; 245 winner = yielding_thread;
245 } 246 }
246 } else { 247 } else {
247 winner = scheduled_queue[i].front(); 248 winner = scheduled_queue[core_id].front();
248 } 249 }
249 250
250 if (kernel.GetCurrentHostThreadID() != core_id) { 251 if (kernel.GetCurrentHostThreadID() != core_id) {