From: Colin Patrick McCabe Date: Fri, 27 May 2011 21:04:36 +0000 (-0700) Subject: SimpleMessenger: allow multiple calls to shutdown X-Git-Tag: v0.29~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4ddf8df804aa64e5fc6251e0c375a7dc5697903b;p=ceph.git SimpleMessenger: allow multiple calls to shutdown Fixes a case where radostool crashed on an error shutdown. Signed-off-by: Colin McCabe --- diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index a96363ee8ab5..a27ae6144e7c 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; }