diff options
| author | 2021-04-23 17:00:46 -0700 | |
|---|---|---|
| committer | 2021-05-05 16:40:52 -0700 | |
| commit | 39a8dba9a67385b2e246dbf96b22adcb8fc53c03 (patch) | |
| tree | 7c82d079b06324206a59cb4fca16ba78b7fdf8fc | |
| parent | hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject. (diff) | |
| download | yuzu-39a8dba9a67385b2e246dbf96b22adcb8fc53c03.tar.gz yuzu-39a8dba9a67385b2e246dbf96b22adcb8fc53c03.tar.xz yuzu-39a8dba9a67385b2e246dbf96b22adcb8fc53c03.zip | |
hle: kernel: Cleanup shutdown of persistent kernel objects.
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index c939bb903..b2eb51bde 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -129,20 +129,18 @@ struct KernelCore::Impl { | |||
| 129 | 129 | ||
| 130 | exclusive_monitor.reset(); | 130 | exclusive_monitor.reset(); |
| 131 | 131 | ||
| 132 | hid_shared_mem->Close(); | 132 | // Cleanup persistent kernel objects |
| 133 | hid_shared_mem = nullptr; | 133 | auto CleanupObject = [](KAutoObject* obj) { |
| 134 | 134 | if (obj) { | |
| 135 | font_shared_mem->Close(); | 135 | obj->Close(); |
| 136 | font_shared_mem = nullptr; | 136 | obj = nullptr; |
| 137 | 137 | } | |
| 138 | irs_shared_mem->Close(); | 138 | }; |
| 139 | irs_shared_mem = nullptr; | 139 | CleanupObject(hid_shared_mem); |
| 140 | 140 | CleanupObject(font_shared_mem); | |
| 141 | time_shared_mem->Close(); | 141 | CleanupObject(irs_shared_mem); |
| 142 | time_shared_mem = nullptr; | 142 | CleanupObject(time_shared_mem); |
| 143 | 143 | CleanupObject(system_resource_limit); | |
| 144 | system_resource_limit->Close(); | ||
| 145 | system_resource_limit = nullptr; | ||
| 146 | 144 | ||
| 147 | // Next host thead ID to use, 0-3 IDs represent core threads, >3 represent others | 145 | // Next host thead ID to use, 0-3 IDs represent core threads, >3 represent others |
| 148 | next_host_thread_id = Core::Hardware::NUM_CPU_CORES; | 146 | next_host_thread_id = Core::Hardware::NUM_CPU_CORES; |