Merge pull request #9386 from leoetlino/config-cache-invalidate

Config: Fix cache not being invalidated when callbacks are suppressed
This commit is contained in:
Léo Lam 2020-12-29 22:22:15 +01:00 committed by GitHub
commit 3b2e31230f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 2 deletions

View File

@ -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();
}