diff options
author | bunnei <bunneidev@gmail.com> | 2021-12-30 06:40:38 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2021-12-31 00:50:45 +0100 |
commit | 3a89723d97b8e646cde569030057777813f4371c (patch) | |
tree | c08f00b1ebb21c3652f0e23ab28fe06c4678aa42 /src/core/hle/kernel/k_scheduler.cpp | |
parent | Merge pull request #7635 from bunnei/set-heap-size (diff) | |
download | yuzu-3a89723d97b8e646cde569030057777813f4371c.tar yuzu-3a89723d97b8e646cde569030057777813f4371c.tar.gz yuzu-3a89723d97b8e646cde569030057777813f4371c.tar.bz2 yuzu-3a89723d97b8e646cde569030057777813f4371c.tar.lz yuzu-3a89723d97b8e646cde569030057777813f4371c.tar.xz yuzu-3a89723d97b8e646cde569030057777813f4371c.tar.zst yuzu-3a89723d97b8e646cde569030057777813f4371c.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/k_scheduler.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_scheduler.cpp b/src/core/hle/kernel/k_scheduler.cpp index 277201de4..31cec990e 100644 --- a/src/core/hle/kernel/k_scheduler.cpp +++ b/src/core/hle/kernel/k_scheduler.cpp @@ -15,6 +15,7 @@ #include "core/core.h" #include "core/core_timing.h" #include "core/cpu_manager.h" +#include "core/hle/kernel/k_interrupt_manager.h" #include "core/hle/kernel/k_process.h" #include "core/hle/kernel/k_scheduler.h" #include "core/hle/kernel/k_scoped_scheduler_lock_and_sleep.h" @@ -53,6 +54,13 @@ void KScheduler::RescheduleCores(KernelCore& kernel, u64 cores_pending_reschedul } cores_pending_reschedule &= ~(1ULL << core); } + + for (std::size_t core_id = 0; core_id < Core::Hardware::NUM_CPU_CORES; ++core_id) { + if (kernel.PhysicalCore(core_id).IsInterrupted()) { + KInterruptManager::HandleInterrupt(kernel, static_cast<s32>(core_id)); + } + } + if (must_context_switch) { auto core_scheduler = kernel.CurrentScheduler(); kernel.ExitSVCProfile(); |