pthread_cond_timedwait —
wait on a condition variable for a
specific amount of time
POSIX Threads Library (libpthread,
-lpthread)
#include
<pthread.h>
int
pthread_cond_timedwait(pthread_cond_t
*cond, pthread_mutex_t
*mutex, const struct
timespec *abstime);
The
pthread_cond_timedwait()
function atomically blocks the current thread waiting on the condition
variable specified by cond, and releases the mutex
specified by mutex. The waiting thread unblocks only
after another thread calls
pthread_cond_signal(3), or
pthread_cond_broadcast(3) with the same condition variable,
or if the system time reaches the time specified in
abstime, and the current thread reacquires the lock on
mutex.
The clock used to measure abstime can be
specified during creation of the condition variable using
pthread_condattr_setclock(3).
If successful, the
pthread_cond_timedwait() function will return zero.
Otherwise an error number will be returned to indicate the error.
The pthread_cond_timedwait() function will
fail if:
- [
EINVAL]
- The value specified by cond,
mutex or abstime is
invalid.
- [
ETIMEDOUT]
- The system time has reached or exceeded the time specified in
abstime.
- [
EPERM]
- The specified mutex was not locked by the calling
thread.
The pthread_cond_timedwait() function
conforms to ISO/IEC 9945-1:1996
(“POSIX.1”).