PTHREAD_COND_TIMEDWAIT(3) | Library Functions Manual | PTHREAD_COND_TIMEDWAIT(3) |
pthread_cond_timedwait
—
wait on a condition variable for a specific amount of
time
#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.
Values for struct timespec can be obtained by adding the required time interval to the the current time obtained using gettimeofday(2).
Note that struct timeval and struct timespec use different units to specify the time. Hence, the user should always take care to perform the time unit conversions accordingly.
struct timeval tv;
struct timespec ts;
gettimeofday(&tv, NULL);
ts.tv_sec = tv.tv_sec + 0;
ts.tv_nsec = 0;
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:
pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_init(3), pthread_cond_signal(3), pthread_cond_wait(3), gettimeofday(2)
The pthread_cond_timedwait
() function
conforms to ISO/IEC 9945-1:1996
(“POSIX.1”).
May 9, 2010 | macOS 14.6 |