Namespaces
Variants

cnd_timedwait

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

原子地解锁指向的 mutex 并阻塞在指向的 cond 条件变量上,直到线程被 cnd_signal cnd_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