diff options
author | Feng Chen <vonchenplus@gmail.com> | 2021-10-26 12:12:13 +0200 |
---|---|---|
committer | Feng Chen <vonchenplus@gmail.com> | 2021-10-27 03:06:30 +0200 |
commit | dd29285e356838b2326f1d2261f0a97eeded713e (patch) | |
tree | 4f71c3446f4164ec06beae0f7fed23e0b022ddc2 /src/core | |
parent | Revert PR7009 (diff) | |
download | yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.gz yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.bz2 yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.lz yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.xz yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.zst yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/kernel/k_process.cpp | 11 | ||||
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 13 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp index 211157ccc..76fd8c285 100644 --- a/src/core/hle/kernel/k_process.cpp +++ b/src/core/hle/kernel/k_process.cpp @@ -434,11 +434,6 @@ void KProcess::PrepareForTermination() { } void KProcess::Finalize() { - // Release memory to the resource limit. - if (resource_limit != nullptr) { - resource_limit->Close(); - } - // Finalize the handle table and close any open handles. handle_table.Finalize(); @@ -460,6 +455,12 @@ void KProcess::Finalize() { } } + // Release memory to the resource limit. + if (resource_limit != nullptr) { + resource_limit->Close(); + resource_limit = nullptr; + } + // Perform inherited finalization. KAutoObjectWithSlabHeapAndContainer<KProcess, KSynchronizationObject>::Finalize(); } diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index db9f55864..4a139c5e7 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -91,12 +91,6 @@ struct KernelCore::Impl { } void Shutdown() { - // Shutdown all processes. - if (current_process) { - current_process->Finalize(); - current_process->Close(); - current_process = nullptr; - } process_list.clear(); // Close all open server ports. @@ -181,6 +175,13 @@ struct KernelCore::Impl { } } + // Shutdown all processes. + if (current_process) { + current_process->Finalize(); + current_process->Close(); + current_process = nullptr; + } + // Track kernel objects that were not freed on shutdown { std::lock_guard lk(registered_objects_lock); |