< c‎ | thread
Defined in header <threads.h>
int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex,
                   const struct timespec* restrict time_point );
(since C11)

Atomically unlocks the mutex pointed to by mutex and blocks on the condition variable pointed to by cond until the thread is signalled by cnd_signal or cnd_broadcast, or until the TIME_UTC based time point pointed to by time_point has been reached, or until a spurious wake-up occurs. The mutex is locked again before the function returns.

The behavior is undefined if the mutex is not already locked by the calling thread.


[edit] Parameters

cond - pointer to the condition variable to block on
mutex - pointer to the mutex to unlock for the duration of the block
time_point - pointer to a object specifying timeout time to wait until

[edit] Return value

thrd_success if successful, thrd_timedout if the timeout time has been reached before the mutex is locked, or thrd_error if an error occurred.

[edit] References

  • C11 standard (ISO/IEC 9899:2011):
  • The cnd_timedwait function (p: 379-380)

[edit] See also

blocks on a condition variable
(function) [edit]
C++ documentation for condition_variable::wait_until
C++ documentation for condition_variable_any::wait_until