From: Sage Weil Date: Mon, 15 Oct 2018 15:26:31 +0000 (-0500) Subject: common/condition_variable_debug: fix wait hooks X-Git-Tag: v14.0.1~18^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F24528%2Fhead;p=ceph.git common/condition_variable_debug: fix wait hooks The post_lock hook needs to be called even with the cond times out, because the lock is still locked at that point. Signed-off-by: Sage Weil --- diff --git a/src/common/condition_variable_debug.cc b/src/common/condition_variable_debug.cc index ae5b7d25134a..a2ddd7691a7d 100644 --- a/src/common/condition_variable_debug.cc +++ b/src/common/condition_variable_debug.cc @@ -63,9 +63,9 @@ std::cv_status condition_variable_debug::_wait_until(mutex_debug* mutex, waiter_mutex->_pre_unlock(); int r = pthread_cond_timedwait(&cond, waiter_mutex->native_handle(), ts); + waiter_mutex->_post_lock(); switch (r) { case 0: - waiter_mutex->_post_lock(); return std::cv_status::no_timeout; case ETIMEDOUT: return std::cv_status::timeout;