summaryrefslogtreecommitdiffstats
path: root/src/core/cpu_manager.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-11-28 20:30:39 +0100
committerLiam <byteslice@airmail.cc>2023-12-04 16:37:16 +0100
commit45c87c7e6e841c11def43e5ab25160006dab6d77 (patch)
tree04a3ea0bd8c07389e17741aa28615e3b32ace2f7 /src/core/cpu_manager.cpp
parentMerge pull request #12235 from liamwhite/flip-clip (diff)
downloadyuzu-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.cpp8
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();