我正在查看一些为 pthread 互斥体提供 C/C++ 包装器的代码。该代码为有信号/无信号条件保留一个影子变量。pthread_mutex_lock
该代码还忽略了和等函数的返回值pthread_mutex_trylock
,因此影子变量可能无法准确反映互斥锁的状态(忽略次要竞争条件)。
pthread 是否提供了一种查询互斥锁状态的方法?快速阅读pthread API似乎没有提供。我也没有看到任何有趣的操作pthread_mutexattr_t
。
还是应该使用trylock
、依赖EBUSY
并在获得时放弃所有权?
提前致谢。