]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
journal: FutureImpl shouldn't hold lock while invoking callbacks
authorJason Dillaman <dillaman@redhat.com>
Tue, 1 Sep 2015 00:31:14 +0000 (20:31 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 6 Nov 2015 01:42:43 +0000 (20:42 -0500)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/journal/FutureImpl.cc

index 59494a17f4497dcd55f2f43859970900372867dc..83657330b9f470aead984e0c00b162f0e7a43a80 100644 (file)
@@ -124,10 +124,13 @@ void FutureImpl::finish() {
 
   Contexts contexts;
   contexts.swap(m_contexts);
+
+  m_lock.Unlock();
   for (Contexts::iterator it = contexts.begin();
        it != contexts.end(); ++it) {
     (*it)->complete(m_return_value);
   }
+  m_lock.Lock();
 }
 
 std::ostream &operator<<(std::ostream &os, const FutureImpl &future) {