命名空间
变体
操作

cnd_timedwait

来自 cppreference.cn
< 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

[编辑] 参考文献

  • C17 标准 (ISO/IEC 9899:2018)
  • 7.26.3.5 cnd_timedwait 函数 (页码: 276-277)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.26.3.5 cnd_timedwait 函数 (页码: 379-380)

[编辑] 参见

在条件变量上阻塞
(函数) [编辑]
C++ 文档 关于 condition_variable::wait_until
C++ 文档 关于 condition_variable_any::wait_until