diff options
author | Liam <byteslice@airmail.cc> | 2023-11-28 20:30:39 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-12-04 16:37:16 +0100 |
commit | 45c87c7e6e841c11def43e5ab25160006dab6d77 (patch) | |
tree | 04a3ea0bd8c07389e17741aa28615e3b32ace2f7 /src/core/cpu_manager.cpp | |
parent | Merge pull request #12235 from liamwhite/flip-clip (diff) | |
download | yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.tar yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.tar.gz yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.tar.bz2 yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.tar.lz yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.tar.xz yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.tar.zst yuzu-45c87c7e6e841c11def43e5ab25160006dab6d77.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/cpu_manager.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/cpu_manager.cpp b/src/core/cpu_manager.cpp index 151eb3870..7a5c22f78 100644 --- a/src/core/cpu_manager.cpp +++ b/src/core/cpu_manager.cpp @@ -73,12 +73,13 @@ void CpuManager::HandleInterrupt() { void CpuManager::MultiCoreRunGuestThread() { // Similar to UserModeThreadStarter in HOS auto& kernel = system.Kernel(); + auto* thread = Kernel::GetCurrentThreadPointer(kernel); kernel.CurrentScheduler()->OnThreadStart(); while (true) { auto* physical_core = &kernel.CurrentPhysicalCore(); while (!physical_core->IsInterrupted()) { - physical_core->Run(); + physical_core->RunThread(thread); physical_core = &kernel.CurrentPhysicalCore(); } @@ -110,12 +111,13 @@ void CpuManager::MultiCoreRunIdleThread() { void CpuManager::SingleCoreRunGuestThread() { auto& kernel = system.Kernel(); + auto* thread = Kernel::GetCurrentThreadPointer(kernel); kernel.CurrentScheduler()->OnThreadStart(); while (true) { auto* physical_core = &kernel.CurrentPhysicalCore(); if (!physical_core->IsInterrupted()) { - physical_core->Run(); + physical_core->RunThread(thread); physical_core = &kernel.CurrentPhysicalCore(); } @@ -211,8 +213,6 @@ void CpuManager::RunThread(std::stop_token token, std::size_t core) { system.GPU().ObtainContext(); } - system.ArmInterface(core).Initialize(); - auto& kernel = system.Kernel(); auto& scheduler = *kernel.CurrentScheduler(); auto* thread = scheduler.GetSchedulerCurrentThread(); |