pthread_cond_clockwait3
Wait on a condition variable for a specific amount of time
Part of pthread_cond_timedwait(3).
Usage
#include <pthread.h>
int
pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime);
#include <time.h>
int
pthread_cond_clockwait(pthread_cond_t *cond, pthread_mutex_t *mutex, clockid_t clockid, const struct timespec *abstime);
Library
POSIX Threads Library (libpthread, -lpthread)
Overview
The pthread_cond_timedwait() and pthread_cond_clockwait() functions 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 pthread_cond_clockwait() function is identical to pthread_cond_timedwait(), except in the way the clock to measure time-out is named. For the pthread_cond_timedwait() function, the clock used to measure abstime can be specified during creation of the condition variable using pthread_condattr_setclock(3). For the pthread_cond_clockwait() function, the clock is specified by the clockid argument.
Return values
If successful, the pthread_cond_timedwait() function will return zero. Otherwise an error number will be returned to indicate the error.
Errors
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.