首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mtx_timedlock

在头文件<threads.h>中定义

int mtx_timedlock(mtx_t * restrict mutex,const struct timespec * restrict time_point);

(自C11以来)

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

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

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

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

参数

mux

-

指向要锁定的互斥体的指针

time_point

-

指向等待的超时时间

返回值

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

参考

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

扩展内容

mtx_lock(C11)

阻塞直到锁定一个互斥量(函数)

mtx_trylock(C11)

锁定互斥或返回,如果已锁定(功能)

mtx_unlock(C11)

解锁互斥锁(功能)

| try_lock_until 的 C ++文档 |

扫码关注腾讯云开发者

领取腾讯云代金券