【发布时间】:2013-11-24 22:04:31
【问题描述】:
The Open Group 有一个针对pthread_mutex_lock、pthread_mutex_trylock、pthread_mutex_unlock 和位于here 的朋友的规范。
该页面列出了四个互斥体属性值:PTHREAD_MUTEX_NORMAL、PTHREAD_MUTEX_ERRORCHECK、PTHREAD_MUTEX_RECURSIVE 和 PTHREAD_MUTEX_DEFAULT。
所有的值都是互斥的吗?在调试配置中,我们是否允许将这些值 OR 一起使用?例如,我想在 Debug 中进行完整的错误检查,那么PTHREAD_MUTEX_ERRORCHECK | PTHREAD_MUTEX_RECURSIVE 是一个有效的配置吗?
我问的原因是我发现了一个错误pthread_mutexattr_settype。我不确定它是否是有效配置和 OS X 实现错误;或者如果它是无效的配置和预期的标准行为。如果它是 OS X 的错误,我仍然可以在其他平台上享受调试配置中增强的错误检查。
【问题讨论】: