Signed-off-by: Haomai Wang <haomai@xsky.com>
lock.Unlock();
return;
}
- if (state == CONNECTED) {
- finisher.wait_for_empty();
- finisher.stop();
- }
+
bool need_objecter = false;
if (objecter && objecter->initialized.read()) {
need_objecter = true;
}
+
+ if (state == CONNECTED) {
+ if (need_objecter) {
+ // make sure watch callbacks are flushed
+ watch_flush();
+ }
+ finisher.wait_for_empty();
+ finisher.stop();
+ }
state = DISCONNECTED;
instance_id = 0;
timer.shutdown(); // will drop+retake lock
lock.Unlock();
if (need_objecter) {
- // make sure watch callbacks are flushed
- watch_flush();
objecter->shutdown();
}
monclient.shutdown();