summaryrefslogtreecommitdiff
path: root/src/core/hle/service
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/service
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/service')
-rw-r--r--src/core/hle/service/time/time_manager.cpp4
-rw-r--r--src/core/hle/service/time/time_manager.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/service/time/time_manager.cpp b/src/core/hle/service/time/time_manager.cpp
index 858623e2b..1f7309f6b 100644
--- a/src/core/hle/service/time/time_manager.cpp
+++ b/src/core/hle/service/time/time_manager.cpp
@@ -279,6 +279,10 @@ const SharedMemory& TimeManager::GetSharedMemory() const {
279 return impl->shared_memory; 279 return impl->shared_memory;
280} 280}
281 281
282void TimeManager::Shutdown() {
283 impl.reset();
284}
285
282void TimeManager::UpdateLocalSystemClockTime(s64 posix_time) { 286void TimeManager::UpdateLocalSystemClockTime(s64 posix_time) {
283 impl->UpdateLocalSystemClockTime(system, posix_time); 287 impl->UpdateLocalSystemClockTime(system, posix_time);
284} 288}
diff --git a/src/core/hle/service/time/time_manager.h b/src/core/hle/service/time/time_manager.h
index 993c7c288..4db8cc0e1 100644
--- a/src/core/hle/service/time/time_manager.h
+++ b/src/core/hle/service/time/time_manager.h
@@ -61,6 +61,8 @@ public:
61 61
62 const SharedMemory& GetSharedMemory() const; 62 const SharedMemory& GetSharedMemory() const;
63 63
64 void Shutdown();
65
64 void SetupTimeZoneManager(std::string location_name, 66 void SetupTimeZoneManager(std::string location_name,
65 Clock::SteadyClockTimePoint time_zone_updated_time_point, 67 Clock::SteadyClockTimePoint time_zone_updated_time_point,
66 std::size_t total_location_name_count, u128 time_zone_rule_version, 68 std::size_t total_location_name_count, u128 time_zone_rule_version,