From 926a1b7468550e0c83bfa68bd45df1a6af599727 Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Tue, 23 Dec 2014 18:38:24 +0800 Subject: [PATCH] librados: only call watch_flush if necessary Fix bug #10424 Signed-off-by: Haomai Wang --- src/librados/RadosClient.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index a5b89a07960bb..a0b4f23441faa 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -282,9 +282,6 @@ int librados::RadosClient::connect() void librados::RadosClient::shutdown() { - // make sure watch callbacks are flushed - watch_flush(); - lock.Lock(); if (state == DISCONNECTED) { lock.Unlock(); @@ -301,8 +298,11 @@ void librados::RadosClient::shutdown() instance_id = 0; timer.shutdown(); // will drop+retake lock lock.Unlock(); - if (need_objecter) + if (need_objecter) { + // make sure watch callbacks are flushed + watch_flush(); objecter->shutdown(); + } monclient.shutdown(); if (messenger) { messenger->shutdown();