From: Kefu Chai Date: Tue, 16 May 2017 09:16:51 +0000 (+0800) Subject: mon/MgrMonitor: cancel timer before resetting it X-Git-Tag: v12.1.0~10^2~71^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a80ff0128a83a9040db69929efefe143caf48c15;p=ceph.git mon/MgrMonitor: cancel timer before resetting it Signed-off-by: Kefu Chai --- diff --git a/src/mon/MgrMonitor.cc b/src/mon/MgrMonitor.cc index 1e5f95586893..74068dcf130b 100644 --- a/src/mon/MgrMonitor.cc +++ b/src/mon/MgrMonitor.cc @@ -275,7 +275,7 @@ void MgrMonitor::check_sub(Subscription *sub) */ void MgrMonitor::send_digests() { - digest_event = nullptr; + cancel_timer(); const std::string type = "mgrdigest"; if (mon->session_map.subs.count(type) == 0) @@ -304,6 +304,14 @@ void MgrMonitor::send_digests() mon->timer.add_event_after(g_conf->mon_mgr_digest_period, digest_event); } +void MgrMonitor::cancel_timer() +{ + if (digest_event) { + mon->timer.cancel_event(digest_event); + digest_event = nullptr; + } +} + void MgrMonitor::on_active() { if (mon->is_leader()) @@ -545,7 +553,5 @@ void MgrMonitor::init() void MgrMonitor::on_shutdown() { - if (digest_event) { - mon->timer.cancel_event(digest_event); - } + cancel_timer(); } diff --git a/src/mon/MgrMonitor.h b/src/mon/MgrMonitor.h index f4e6f9920d70..280fca5bd1e2 100644 --- a/src/mon/MgrMonitor.h +++ b/src/mon/MgrMonitor.h @@ -37,6 +37,7 @@ class MgrMonitor : public PaxosService void drop_standby(uint64_t gid); Context *digest_event = nullptr; + void cancel_timer(); bool check_caps(MonOpRequestRef op, const uuid_d& fsid);