diff options
| author | 2020-03-10 18:41:11 -0400 | |
|---|---|---|
| committer | 2020-06-27 11:35:46 -0400 | |
| commit | f370de84b16f9d668b7d5dcc0fd851264e2e6144 (patch) | |
| tree | 1fedb0bc3338587a328b573c3319fba7cdd0c3bc /src/core/hle/kernel/scheduler.cpp | |
| parent | Kernel: Preempt Single core on redudant yields. (diff) | |
| download | yuzu-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.cpp | 2 |
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() { | |||
| 605 | void Scheduler::Unload() { | 605 | void 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); |