diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 3c06dc2610b99..c2d62ed94aa4e 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -550,11 +550,19 @@ void Monitor::handle_conf_change(const ConfigProxy& conf, if (changed.count("mon_health_to_clog") || changed.count("mon_health_to_clog_interval") || changed.count("mon_health_to_clog_tick_interval")) { - health_to_clog_update_conf(changed); + std::set c2(changed); + finisher.queue(new C_MonContext(this, [this, c2](int) { + Mutex::Locker l(lock); + health_to_clog_update_conf(c2); + })); } if (changed.count("mon_scrub_interval")) { - scrub_update_interval(conf->mon_scrub_interval); + int scrub_interval = conf->mon_scrub_interval; + finisher.queue(new C_MonContext(this, [this, scrub_interval](int) { + Mutex::Locker l(lock); + scrub_update_interval(scrub_interval); + })); } }