【问题标题】:pthread mutex: get statepthread 互斥锁:获取状态
【发布时间】:2013-07-23 07:12:35
【问题描述】:

我正在查看一些为 pthread 互斥体提供 C/C++ 包装器的代码。该代码为有信号/无信号条件保留一个影子变量。该代码还会忽略来自 pthread_mutex_lockpthread_mutex_trylock 等函数的返回值,因此影子变量可能无法准确反映互斥体的状态(忽略次要竞争条件)。

pthread 是否提供了一种方法来查询互斥体的状态?快速阅读pthread API 似乎没有提供。我也没有看到在 pthread_mutexattr_t 上运行的任何有趣的东西。

还是应该使用trylock,依赖EBUSY,如果被收购就放弃所有权?

提前致谢。

【问题讨论】:

    标签: pthreads mutex state


    【解决方案1】:

    没有这样的功能,因为没有意义。如果您像pthread_mutex_trylock() 那样查询互斥锁的状态而不尝试获取它,那么您获得的结果可能会立即被另一个线程更改该互斥锁的状态而无效。

    【讨论】:

    • 好的,听起来这个库的设计很糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2013-06-06
    • 1970-01-01
    • 2017-11-21
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多