summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar Feng Chen2021-10-26 18:12:13 +0800
committerGravatar Feng Chen2021-10-27 09:06:30 +0800
commitdd29285e356838b2326f1d2261f0a97eeded713e (patch)
tree4f71c3446f4164ec06beae0f7fed23e0b022ddc2 /src/core/hle/kernel/kernel.cpp
parentRevert PR7009 (diff)
downloadyuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.gz
yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.tar.xz
yuzu-dd29285e356838b2326f1d2261f0a97eeded713e.zip
Fix dangling kernel objects when exiting
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp13
1 files changed, 7 insertions, 6 deletions
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 {
91 } 91 }
92 92
93 void Shutdown() { 93 void Shutdown() {
94 // Shutdown all processes.
95 if (current_process) {
96 current_process->Finalize();
97 current_process->Close();
98 current_process = nullptr;
99 }
100 process_list.clear(); 94 process_list.clear();
101 95
102 // Close all open server ports. 96 // Close all open server ports.
@@ -181,6 +175,13 @@ struct KernelCore::Impl {
181 } 175 }
182 } 176 }
183 177
178 // Shutdown all processes.
179 if (current_process) {
180 current_process->Finalize();
181 current_process->Close();
182 current_process = nullptr;
183 }
184
184 // Track kernel objects that were not freed on shutdown 185 // Track kernel objects that were not freed on shutdown
185 { 186 {
186 std::lock_guard lk(registered_objects_lock); 187 std::lock_guard lk(registered_objects_lock);