diff options
| author | Fernando S <fsahmkow27@gmail.com> | 2022-06-16 02:41:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-16 02:41:12 +0200 |
| commit | 1d8e860c47a2bd9944443d9f4d717f6f19eaf72d (patch) | |
| tree | 8c1aa046c96d7f943288ecb3455f4091cdc31a09 /src/core/core.cpp | |
| parent | 1d18c8d3d95dc22163150a7b8503f19c647183da (diff) | |
| parent | 59a6d886258127f9a5580e2ddfce7d5fbcb9214c (diff) | |
Merge pull request #8457 from liamwhite/kprocess-suspend
kernel: implement KProcess suspension
Diffstat (limited to 'src/core/core.cpp')
| -rw-r--r-- | src/core/core.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 954136adb6..7723d9782a 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(); @@ -499,12 +497,12 @@ void System::DetachDebugger() { } } -std::unique_lock<std::mutex> System::StallCPU() { - return impl->StallCPU(); +std::unique_lock<std::mutex> System::StallProcesses() { + return impl->StallProcesses(); } -void System::UnstallCPU() { - impl->UnstallCPU(); +void System::UnstallProcesses() { + impl->UnstallProcesses(); } void System::InitializeDebugger() { |
