From 770f0077f70fad197e64de51aec352a01b35636c Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Wed, 12 Sep 2018 11:59:59 +0300 Subject: [PATCH] common: copy constructor for config proxy Signed-off-by: Mykola Golub --- src/common/config_proxy.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/common/config_proxy.h b/src/common/config_proxy.h index e9b6b39b6263a..e54f357bccede 100644 --- a/src/common/config_proxy.h +++ b/src/common/config_proxy.h @@ -12,6 +12,11 @@ // the legacy settings with arrow operator, and the new-style config with its // member methods. class ConfigProxy { + static ConfigValues get_config_values(const ConfigProxy &config_proxy) { + Mutex::Locker locker(config_proxy.lock); + return config_proxy.values; + } + /** * The current values of all settings described by the schema */ @@ -30,6 +35,11 @@ public: : config{values, obs_mgr, is_daemon}, lock{"ConfigProxy", true, false} {} + explicit ConfigProxy(const ConfigProxy &config_proxy) + : values(get_config_values(config_proxy)), + config{values, obs_mgr, config_proxy.config.is_daemon}, + lock{"ConfigProxy", true, false} + {} const ConfigValues* operator->() const noexcept { return &values; } -- 2.39.5