pthread_cond_clockwait(3)

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.

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.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.