From 4ddf8df804aa64e5fc6251e0c375a7dc5697903b Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Fri, 27 May 2011 14:04:36 -0700 Subject: [PATCH] SimpleMessenger: allow multiple calls to shutdown Fixes a case where radostool crashed on an error shutdown. Signed-off-by: Colin McCabe --- src/msg/SimpleMessenger.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index a96363ee8ab5c..a27ae6144e7c7 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -2586,6 +2586,10 @@ int SimpleMessenger::send_keepalive(const entity_inst_t& dest) void SimpleMessenger::wait() { lock.Lock(); + if (!started) { + lock.Unlock(); + return; + } while (!destination_stopped) { dout(10) << "wait: still active" << dendl; wait_cond.Wait(lock); @@ -2608,6 +2612,7 @@ void SimpleMessenger::wait() reaper_stop = true; lock.Unlock(); reaper_thread.join(); + reaper_started = false; dout(20) << "wait: stopped reaper thread" << dendl; } -- 2.39.5