mtx_timedlock
来自 cppreference.cn
定义于头文件 <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)
[编辑] 参见
(C11) |
秒和纳秒的时间 (结构体) |
(C11) |
阻塞直到锁定互斥锁 (函数) |
(C11) |
锁定互斥锁,如果已被锁定则不阻塞直接返回 (函数) |
(C11) |
解锁互斥锁 (函数) |
C++ 文档 关于 timed_mutex::try_lock_until
| |
C++ 文档 关于 recursive_timed_mutex::try_lock_until
|
[编辑] 外部链接
GNU GCC Libc 手册: ISO-C-Mutexes |