diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index d69d2252f5..115eaf331a 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -339,14 +339,10 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_) }; m_system_settings.eula_versions[0] = eula_version; m_system_settings.eula_version_count = 1; - - m_save_thread = - std::jthread([this](std::stop_token stop_token) { StoreSettingsThreadFunc(stop_token); }); } ISystemSettingsServer::~ISystemSettingsServer() { SetSaveNeeded(); - m_save_thread.request_stop(); } bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& default_func) { @@ -1393,20 +1389,9 @@ void ISystemSettingsServer::StoreSettings() { } } -void ISystemSettingsServer::StoreSettingsThreadFunc(std::stop_token stop_token) { - Common::SetCurrentThreadName("SettingsStore"); - - while (Common::StoppableTimedWait(stop_token, std::chrono::minutes(1))) { - std::scoped_lock l{m_save_needed_mutex}; - if (!std::exchange(m_save_needed, false)) - continue; - StoreSettings(); - } -} - void ISystemSettingsServer::SetSaveNeeded() { std::scoped_lock l{m_save_needed_mutex}; - m_save_needed = true; + StoreSettings(); } Result ISystemSettingsServer::GetSettingsItemValueImpl(std::span out_value, u64& out_size, diff --git a/src/core/hle/service/set/system_settings_server.h b/src/core/hle/service/set/system_settings_server.h index 3d4b1ecb1e..27a16747f3 100644 --- a/src/core/hle/service/set/system_settings_server.h +++ b/src/core/hle/service/set/system_settings_server.h @@ -167,7 +167,6 @@ private: bool StoreSettingsFile(std::filesystem::path& path, auto& settings); void SetupSettings(); void StoreSettings(); - void StoreSettingsThreadFunc(std::stop_token stop_token); void SetSaveNeeded(); Core::System& m_system; @@ -176,7 +175,6 @@ private: DeviceSettings m_device_settings{}; ApplnSettings m_appln_settings{}; std::mutex m_save_needed_mutex; - std::jthread m_save_thread; bool m_save_needed{false}; };