【发布时间】:2013-07-23 07:12:35
【问题描述】:
我正在查看一些为 pthread 互斥体提供 C/C++ 包装器的代码。该代码为有信号/无信号条件保留一个影子变量。该代码还会忽略来自 pthread_mutex_lock 和 pthread_mutex_trylock 等函数的返回值,因此影子变量可能无法准确反映互斥体的状态(忽略次要竞争条件)。
pthread 是否提供了一种方法来查询互斥体的状态?快速阅读pthread API 似乎没有提供。我也没有看到在 pthread_mutexattr_t 上运行的任何有趣的东西。
还是应该使用trylock,依赖EBUSY,如果被收购就放弃所有权?
提前致谢。
【问题讨论】: