cnd_timedwait

< c‎ | thread
定义于头文件 <threads.h>
int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex,
                   const struct timespec* restrict time_point );
(C11 起)

原子地解锁 mutex 所指向的互斥,并在 cond 所指向的条件变量上阻塞,直到线程被 cnd_signalcnd_broadcast 发信号,或直至抵达 time_point 所指向的基于 TIME_UTC 的时间点,或直至虚假唤醒出现。在函数返回前重新锁定该互斥。

若调用方线程未锁定该互斥,则行为未定义。

参数

cond - 指向要在上面阻塞的条件变量的指针
mutex - 指向要在阻塞期间解锁的互斥的指针
time_point - 指向指定等待时限时间的对象的指针

返回值

若成功则为 thrd_success ,若在锁定互斥前抵达时限则为 thrd_timedout ,若出现错误则为 thrd_error

引用

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

参阅

在条件变量上阻塞
(函数)