diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/core.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 9 | ||||
| -rw-r--r-- | src/core/hle/service/time/time_manager.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/time/time_manager.h | 2 |
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 | ||
| 282 | void TimeManager::Shutdown() { | ||
| 283 | impl.reset(); | ||
| 284 | } | ||
| 285 | |||
| 282 | void TimeManager::UpdateLocalSystemClockTime(s64 posix_time) { | 286 | void 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, |