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 The mtx_timedlock function (第 278 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.26.4.4 The mtx_timedlock function (第 381-382 页)

参阅

单位为秒和纳秒的时间
(结构体)
阻塞到锁定互斥体为止
(函数)
锁定互斥体,若已锁定则返回而不阻塞
(函数)
解锁互斥体
(函数)

外部链接

GNU GCC Libc Manual: ISO-C-Mutexes