命名空间
变体
操作

mtx_timedlock

来自 cppreference.com
< c‎ | thread
定义在头文件 <threads.h>
int mtx_timedlock( mtx_t *restrict mutex,
                   const struct timespec *restrict time_point );
(自 C11)

阻塞当前线程,直到 mutex 指向的互斥量被锁定,或直到 time_point 指向的基于 TIME_UTC 的绝对日历时间点被到达。

由于此函数采用绝对时间,如果需要持续时间,则必须手动计算日历时间点。

如果当前线程已经锁定了互斥量,并且互斥量不是递归的,则行为未定义。

如果互斥量不支持超时,则行为未定义。

在同一互斥量上对 mtx_unlock 的先前调用此操作同步(如果此操作成功),并且所有给定互斥量上的锁定/解锁操作形成单个总顺序(类似于原子修改顺序)

内容

[编辑] 参数

mutex - 指向要锁定的互斥量的指针
time_point - 指向等待超时的绝对日历时间点的指针

[编辑] 返回值

如果成功,则为 thrd_success,如果在互斥量被锁定之前已到达超时时间,则为 thrd_timedout,如果发生错误,则为 thrd_error

[编辑] 参考文献

  • C17 标准 (ISO/IEC 9899:2018)
  • 7.26.4.4 mtx_timedlock 函数 (p: 278)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.26.4.4 mtx_timedlock 函数 (p: 381-382)

[编辑] 另请参见

以秒和纳秒为单位的时间
(结构体)[编辑]
阻塞直到锁定互斥量
(函数) [编辑]
锁定互斥量,或如果已锁定则返回而不阻塞
(函数) [编辑]
解锁互斥量
(函数) [编辑]
C++ 文档 适用于 timed_mutex::try_lock_until
C++ 文档 适用于 recursive_timed_mutex::try_lock_until

[编辑] 外部链接

GNU GCC Libc 手册:ISO-C-Mutexes