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.
This commit is contained in:
@@ -417,7 +417,7 @@ METHOD(rwlock_condvar_t, timed_wait_abs, bool,
|
|||||||
thread_cleanup_push((thread_cleanup_t)this->mutex->unlock, this->mutex);
|
thread_cleanup_push((thread_cleanup_t)this->mutex->unlock, this->mutex);
|
||||||
timed_out = this->condvar->timed_wait_abs(this->condvar, this->mutex, time);
|
timed_out = this->condvar->timed_wait_abs(this->condvar, this->mutex, time);
|
||||||
thread_cleanup_pop(TRUE);
|
thread_cleanup_pop(TRUE);
|
||||||
thread_cleanup_pop(!timed_out);
|
thread_cleanup_pop(TRUE);
|
||||||
return timed_out;
|
return timed_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user