]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: add a Finisher for the Objecter
authorSage Weil <sage@redhat.com>
Mon, 21 Jul 2014 03:49:19 +0000 (20:49 -0700)
committerJohn Spray <john.spray@redhat.com>
Mon, 25 Aug 2014 00:34:02 +0000 (01:34 +0100)
Signed-off-by: Sage Weil <sage@redhat.com>
src/client/Client.cc
src/client/Client.h

index 69074e5245e86fc2b55790921398e23944c5e889..b6285dd400da513f84bb46efc6d0caed6703a23e 100644 (file)
@@ -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) {
index 075ea2a8625a861b529e173ed2106ca543fe3fe5..78d0f0dd771216ece729a41929bd9ae7e7ef3cce 100644 (file)
@@ -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;