summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/core.cpp3
-rw-r--r--src/core/hle/kernel/kernel.cpp9
-rw-r--r--src/core/hle/service/time/time_manager.cpp4
-rw-r--r--src/core/hle/service/time/time_manager.h2
4 files changed, 16 insertions, 2 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 30f5e1128..de6305e2a 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -308,6 +308,9 @@ struct System::Impl {
308 // Close all CPU/threading state 308 // Close all CPU/threading state
309 cpu_manager.Shutdown(); 309 cpu_manager.Shutdown();
310 310
311 // Release the Time Manager's resources
312 time_manager.Shutdown();
313
311 // Shutdown kernel and core timing 314 // Shutdown kernel and core timing
312 core_timing.Shutdown(); 315 core_timing.Shutdown();
313 kernel.Shutdown(); 316 kernel.Shutdown();
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 }
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,