Reference

pthread_cond_clockwait(3)

wait on a condition variable for a specific amount of time

NAME

pthread_cond_timedwait – wait on a condition variable for a specific amount of time

LIBRARY

POSIX Threads Library (libpthread, -lpthread)

SYNOPSIS

#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);

DESCRIPTION

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.

SEE ALSO

pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_init(3), pthread_cond_signal(3), pthread_cond_wait(3), pthread_condattr_setclock(3)

STANDARDS

The pthread_cond_timedwait() function conforms to ISO/IEC 9945-1:1996 (“POSIX.1”). The pthread_cond_clockwait() function conforms to IEEE Std 1003.1-2024 (“POSIX.1”) and appeared in FreeBSD 16.0.