From: Sage Weil Date: Mon, 21 Jul 2014 03:49:19 +0000 (-0700) Subject: client: add a Finisher for the Objecter X-Git-Tag: v0.86~213^2~61 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d3b87fb692fd0a3258a9458ba6ef918431204ec1;p=ceph.git client: add a Finisher for the Objecter Signed-off-by: Sage Weil --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 69074e5245e..b6285dd400d 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -162,6 +162,7 @@ Client::Client(Messenger *m, MonClient *mc) getgroups_cb_handle(NULL), async_ino_invalidator(m->cct), async_dentry_invalidator(m->cct), + objecter_finisher(m->cct), tick_event(NULL), monclient(mc), messenger(m), whoami(m->get_myname().num()), initialized(false), mounted(false), unmounting(false), @@ -205,6 +206,7 @@ Client::Client(Messenger *m, MonClient *mc) cct->_conf->client_oc_target_dirty, cct->_conf->client_oc_max_dirty_age, true); + objecter_finisher.start(); filer = new Filer(objecter); } @@ -450,6 +452,10 @@ void Client::shutdown() timer.shutdown(); objecter->shutdown(); client_lock.Unlock(); + + objecter_finisher.wait_for_empty(); + objecter_finisher.stop(); + monclient->shutdown(); if (logger) { diff --git a/src/client/Client.h b/src/client/Client.h index 075ea2a8625..78d0f0dd771 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -223,6 +223,7 @@ class Client : public Dispatcher { Finisher async_ino_invalidator; Finisher async_dentry_invalidator; + Finisher objecter_finisher; Context *tick_event; utime_t last_cap_renew;