From 0ce86b3508096818d38465d0468fc57195022b6d Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Fri, 8 Jan 2010 17:25:53 -0800 Subject: [PATCH] mon: properly clean up SessionMap on a shutdown. This fixes failed asserts whenever you tried to do a clean monitor shutdown instead of killing it. --- src/mon/Monitor.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 8913afba18f9e..1df96f6bbb35e 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -111,6 +111,20 @@ Monitor::~Monitor() delete *p; for (vector::iterator p = paxos.begin(); p != paxos.end(); p++) delete *p; + //clean out SessionMap's subscriptions + for (map >::iterator i + = session_map.subs.begin(); + i != session_map.subs.end(); + ++i) { + while (!i->second.empty()) { + session_map.remove_sub(i->second.front()); + } + } + //clean out SessionMap's sessions + while (!session_map.sessions.empty()) { + session_map.remove_session(session_map.sessions.front()); + } + } void Monitor::init() -- 2.39.5