From ea4971cec8a489e480cb0055a50f6db4ca056783 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 31 Aug 2015 20:31:14 -0400 Subject: [PATCH] journal: FutureImpl shouldn't hold lock while invoking callbacks Signed-off-by: Jason Dillaman --- src/journal/FutureImpl.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/journal/FutureImpl.cc b/src/journal/FutureImpl.cc index 59494a17f449..83657330b9f4 100644 --- a/src/journal/FutureImpl.cc +++ b/src/journal/FutureImpl.cc @@ -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) { -- 2.47.3