summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Config/Config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/Config/Config.cpp')
-rw-r--r--Source/Core/Common/Config/Config.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/Common/Config/Config.cpp b/Source/Core/Common/Config/Config.cpp
index 071d009b51..c75b6ee5e9 100644
--- a/Source/Core/Common/Config/Config.cpp
+++ b/Source/Core/Common/Config/Config.cpp
@@ -71,11 +71,14 @@ void AddConfigChangedCallback(ConfigChangedCallback func)
void OnConfigChanged()
{
+ // Increment the config version to invalidate caches.
+ // To ensure that getters do not return stale data, this should always be done
+ // even when callbacks are suppressed.
+ s_config_version.fetch_add(1, std::memory_order_relaxed);
+
if (s_callback_guards)
return;
- s_config_version.fetch_add(1, std::memory_order_relaxed);
-
for (const auto& callback : s_callbacks)
callback();
}