summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/scheduler.cpp
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2020-03-10 18:41:11 -0400
committerGravatar Fernando Sahmkow2020-06-27 11:35:46 -0400
commitf370de84b16f9d668b7d5dcc0fd851264e2e6144 (patch)
tree1fedb0bc3338587a328b573c3319fba7cdd0c3bc /src/core/hle/kernel/scheduler.cpp
parentKernel: Preempt Single core on redudant yields. (diff)
downloadyuzu-f370de84b16f9d668b7d5dcc0fd851264e2e6144.tar.gz
yuzu-f370de84b16f9d668b7d5dcc0fd851264e2e6144.tar.xz
yuzu-f370de84b16f9d668b7d5dcc0fd851264e2e6144.zip
Kernel: Rewind on SVC change.
Diffstat (limited to 'src/core/hle/kernel/scheduler.cpp')
-rw-r--r--src/core/hle/kernel/scheduler.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp
index 00322d997..25fc8a3e8 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -605,6 +605,7 @@ void Scheduler::OnThreadStart() {
605void Scheduler::Unload() { 605void Scheduler::Unload() {
606 Thread* thread = current_thread.get(); 606 Thread* thread = current_thread.get();
607 if (thread) { 607 if (thread) {
608 thread->SetContinuousOnSVC(false);
608 thread->last_running_ticks = system.CoreTiming().GetCPUTicks(); 609 thread->last_running_ticks = system.CoreTiming().GetCPUTicks();
609 thread->SetIsRunning(false); 610 thread->SetIsRunning(false);
610 if (!thread->IsHLEThread()) { 611 if (!thread->IsHLEThread()) {
@@ -697,6 +698,7 @@ void Scheduler::SwitchContext() {
697 698
698 // Save context for previous thread 699 // Save context for previous thread
699 if (previous_thread) { 700 if (previous_thread) {
701 previous_thread->SetContinuousOnSVC(false);
700 previous_thread->last_running_ticks = system.CoreTiming().GetCPUTicks(); 702 previous_thread->last_running_ticks = system.CoreTiming().GetCPUTicks();
701 if (!previous_thread->IsHLEThread()) { 703 if (!previous_thread->IsHLEThread()) {
702 auto& cpu_core = system.ArmInterface(core_id); 704 auto& cpu_core = system.ArmInterface(core_id);