summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar ameerj2021-02-20 20:51:11 -0500
committerGravatar ameerj2021-02-20 20:51:11 -0500
commit8e4c9c9852b17082f9cb2e2b3d954dee6be7280f (patch)
tree15e4fc8fb15f1d574063d89649c62bda74ac02b2 /src/core/hle/kernel/kernel.cpp
parentMerge pull request #5965 from Morph1984/shader-count (diff)
downloadyuzu-8e4c9c9852b17082f9cb2e2b3d954dee6be7280f.tar.gz
yuzu-8e4c9c9852b17082f9cb2e2b3d954dee6be7280f.tar.xz
yuzu-8e4c9c9852b17082f9cb2e2b3d954dee6be7280f.zip
kernel: Fix resource release exception on exit
After rewriting the resource limit, objects releasing reserved resources require a live kernel instance. This commit fixes exceptions that occur due to the kernel being destroyed before some objects released their resources, allowing for a graceful exit.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index b6e6f115e..39c5182c5 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -101,8 +101,6 @@ struct KernelCore::Impl {
101 101
102 current_process = nullptr; 102 current_process = nullptr;
103 103
104 system_resource_limit = nullptr;
105
106 global_handle_table.Clear(); 104 global_handle_table.Clear();
107 105
108 preemption_event = nullptr; 106 preemption_event = nullptr;
@@ -111,6 +109,13 @@ struct KernelCore::Impl {
111 109
112 exclusive_monitor.reset(); 110 exclusive_monitor.reset();
113 111
112 hid_shared_mem = nullptr;
113 font_shared_mem = nullptr;
114 irs_shared_mem = nullptr;
115 time_shared_mem = nullptr;
116
117 system_resource_limit = nullptr;
118
114 // Next host thead ID to use, 0-3 IDs represent core threads, >3 represent others 119 // Next host thead ID to use, 0-3 IDs represent core threads, >3 represent others
115 next_host_thread_id = Core::Hardware::NUM_CPU_CORES; 120 next_host_thread_id = Core::Hardware::NUM_CPU_CORES;
116 } 121 }