diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/core.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 7d974ba65..7723d9782 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -138,7 +138,6 @@ struct System::Impl { kernel.Suspend(false); core_timing.SyncPause(false); - cpu_manager.Pause(false); is_paused = false; return status; @@ -150,25 +149,22 @@ struct System::Impl { core_timing.SyncPause(true); kernel.Suspend(true); - cpu_manager.Pause(true); is_paused = true; return status; } - std::unique_lock<std::mutex> StallCPU() { + std::unique_lock<std::mutex> StallProcesses() { std::unique_lock<std::mutex> lk(suspend_guard); kernel.Suspend(true); core_timing.SyncPause(true); - cpu_manager.Pause(true); return lk; } - void UnstallCPU() { + void UnstallProcesses() { if (!is_paused) { core_timing.SyncPause(false); kernel.Suspend(false); - cpu_manager.Pause(false); } } @@ -334,6 +330,8 @@ struct System::Impl { gpu_core->NotifyShutdown(); } + kernel.ShutdownCores(); + cpu_manager.Shutdown(); debugger.reset(); services.reset(); service_manager.reset(); @@ -493,12 +491,18 @@ void System::Shutdown() { impl->Shutdown(); } -std::unique_lock<std::mutex> System::StallCPU() { - return impl->StallCPU(); +void System::DetachDebugger() { + if (impl->debugger) { + impl->debugger->NotifyShutdown(); + } +} + +std::unique_lock<std::mutex> System::StallProcesses() { + return impl->StallProcesses(); } -void System::UnstallCPU() { - impl->UnstallCPU(); +void System::UnstallProcesses() { + impl->UnstallProcesses(); } void System::InitializeDebugger() { |