From: Kefu Chai Date: Fri, 13 Oct 2017 03:32:13 +0000 (+0800) Subject: mon/MonClient: schedule tick using lambda X-Git-Tag: v13.0.1~356^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F18283%2Fhead;p=ceph.git mon/MonClient: schedule tick using lambda simpler this way without defining a local struct. Signed-off-by: Kefu Chai --- diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 850b38d69b6..250620cb56b 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -792,20 +792,14 @@ void MonClient::_un_backoff() void MonClient::schedule_tick() { - struct C_Tick : public Context { - MonClient *monc; - explicit C_Tick(MonClient *m) : monc(m) {} - void finish(int r) override { - monc->tick(); - } - }; - + auto do_tick = make_lambda_context([this]() { tick(); }); if (_hunting()) { - timer.add_event_after(cct->_conf->mon_client_hunt_interval - * reopen_interval_multiplier, - new C_Tick(this)); - } else - timer.add_event_after(cct->_conf->mon_client_ping_interval, new C_Tick(this)); + const auto hunt_interval = (cct->_conf->mon_client_hunt_interval * + reopen_interval_multiplier); + timer.add_event_after(hunt_interval, do_tick); + } else { + timer.add_event_after(cct->_conf->mon_client_ping_interval, do_tick); + } } // ---------