summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-03-09 02:13:18 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:35:41 +0200
commit391f5f360d4144c21d65b998dd4e467b56533f78 (patch)
treed22922c1d44946632747427f763a6ad743876d64
parentKernel: Corrections to TimeManager, Scheduler and Mutex. (diff)
downloadyuzu-391f5f360d4144c21d65b998dd4e467b56533f78.tar
yuzu-391f5f360d4144c21d65b998dd4e467b56533f78.tar.gz
yuzu-391f5f360d4144c21d65b998dd4e467b56533f78.tar.bz2
yuzu-391f5f360d4144c21d65b998dd4e467b56533f78.tar.lz
yuzu-391f5f360d4144c21d65b998dd4e467b56533f78.tar.xz
yuzu-391f5f360d4144c21d65b998dd4e467b56533f78.tar.zst
yuzu-391f5f360d4144c21d65b998dd4e467b56533f78.zip
-rw-r--r--src/core/hle/kernel/scheduler.cpp2
-rw-r--r--src/core/hle/kernel/thread.cpp4
2 files changed, 2 insertions, 4 deletions
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp
index 98fbb8fe5..d68d86cdf 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -616,6 +616,7 @@ void Scheduler::SwitchContextStep2() {
// Cancel any outstanding wakeup events for this thread
new_thread->SetIsRunning(true);
+ new_thread->last_running_ticks = system.CoreTiming().GetCPUTicks();
auto* const thread_owner_process = current_thread->GetOwnerProcess();
if (previous_process != thread_owner_process && thread_owner_process != nullptr) {
@@ -654,6 +655,7 @@ void Scheduler::SwitchContext() {
// Save context for previous thread
if (previous_thread) {
+ previous_thread->last_running_ticks = system.CoreTiming().GetCPUTicks();
if (!previous_thread->IsHLEThread()) {
auto& cpu_core = system.ArmInterface(core_id);
cpu_core.SaveContext(previous_thread->GetContext32());
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index 51cc5dcca..fc6c0bc85 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -295,10 +295,6 @@ void Thread::SetStatus(ThreadStatus new_status) {
break;
}
- if (status == ThreadStatus::Running) {
- last_running_ticks = Core::System::GetInstance().CoreTiming().GetCPUTicks();
- }
-
status = new_status;
}