From 47c76c1b053ce71cb445504f2f1e30ff095db684 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 22 Oct 2013 18:36:44 +0200 Subject: [PATCH] rwlock: Re-acquire rwlock even if condvar wait times out A caller expects that the associated rwlock is held, whether the condvar gets signaled or the wait times out. --- src/libstrongswan/threading/rwlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libstrongswan/threading/rwlock.c b/src/libstrongswan/threading/rwlock.c index 176445705..c0f8ec891 100644 --- a/src/libstrongswan/threading/rwlock.c +++ b/src/libstrongswan/threading/rwlock.c @@ -417,7 +417,7 @@ METHOD(rwlock_condvar_t, timed_wait_abs, bool, thread_cleanup_push((thread_cleanup_t)this->mutex->unlock, this->mutex); timed_out = this->condvar->timed_wait_abs(this->condvar, this->mutex, time); thread_cleanup_pop(TRUE); - thread_cleanup_pop(!timed_out); + thread_cleanup_pop(TRUE); return timed_out; }