From d47c1804778fb7bada8e2a0892cdfc77db18ada4 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Thu, 29 Oct 2020 10:06:06 -0400 Subject: [PATCH] common/config_proxy: added 'get_config_values' method Expose the ability to retrieve the ConfigValues from an existing ConfigProxy object. When combined with the newly exposed 'set_config_values' method, it will allow the safe bulk-updating of configuration options. This also removes the original private static version of 'get_config_values'. Signed-off-by: Jason Dillaman --- src/common/config_proxy.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/common/config_proxy.h b/src/common/config_proxy.h index fd7c2b98063..2d96cf01d66 100644 --- a/src/common/config_proxy.h +++ b/src/common/config_proxy.h @@ -13,11 +13,6 @@ // member methods. namespace ceph::common { class ConfigProxy { - static ConfigValues get_config_values(const ConfigProxy &config_proxy) { - std::lock_guard locker(config_proxy.lock); - return config_proxy.values; - } - /** * The current values of all settings described by the schema */ @@ -115,7 +110,7 @@ public: : config{values, obs_mgr, is_daemon} {} explicit ConfigProxy(const ConfigProxy &config_proxy) - : values(get_config_values(config_proxy)), + : values(config_proxy.get_config_values()), config{values, obs_mgr, config_proxy.config.is_daemon} {} const ConfigValues* operator->() const noexcept { @@ -124,6 +119,10 @@ public: ConfigValues* operator->() noexcept { return &values; } + ConfigValues get_config_values() const { + std::lock_guard l{lock}; + return values; + } void set_config_values(const ConfigValues& val) { #ifndef WITH_SEASTAR std::lock_guard l{lock}; -- 2.39.5