Browse Source

Merge pull request #8523 from liamwhite/sc-oopsie

cpu_manager: properly check idle on return from preemption
nce_cpp
Fernando S 4 years ago
committed by GitHub
parent
commit
e41dd008c8
  1. 4
      src/core/cpu_manager.cpp
  2. 5
      src/core/hle/kernel/k_scheduler.h

4
src/core/cpu_manager.cpp

@ -194,7 +194,9 @@ void CpuManager::PreemptSingleCore(bool from_running_enviroment) {
{
auto& scheduler = system.Kernel().Scheduler(current_core);
scheduler.Reload(scheduler.GetSchedulerCurrentThread());
idle_count = 0;
if (!scheduler.IsIdle()) {
idle_count = 0;
}
}
}

5
src/core/hle/kernel/k_scheduler.h

@ -55,6 +55,11 @@ public:
return idle_thread;
}
/// Returns true if the scheduler is idle
[[nodiscard]] bool IsIdle() const {
return GetSchedulerCurrentThread() == idle_thread;
}
/// Gets the timestamp for the last context switch in ticks.
[[nodiscard]] u64 GetLastContextSwitchTicks() const;

Loading…
Cancel
Save