多线程编程指南

设置互斥锁的强健属性

pthread_mutexattr_setrobust_np(3C) 可用来设置互斥锁属性对象的强健属性。

pthread_mutexattr_setrobust_np 语法

#include <pthread.h>



int pthread_mutexattr_setrobust_np(pthread_mutexattr_t *attr, 

												int *robustness);

注 –

仅当定义了符号 _POSIX_THREAD_PRIO_INHERIT 时,pthread_mutexattr_setrobust_np() 才适用。


attr 指示以前通过调用 pthread_mutexattr_init() 创建的互斥锁属性对象。

robustness 定义在互斥锁的属主失败时的行为。pthread.h 中定义的 robustness 的值为 PTHREAD_MUTEX_ROBUST_NPPTHREAD_MUTEX_STALLED_NP。缺省值为 PTHREAD_MUTEX_STALLED_NP

pthread_mutexattr_setrobust_np 返回值

如果成功完成,pthread_mutexattr_setrobust_np() 会返回 0。其他任何返回值都表示出现了错误。

如果出现以下任一情况,pthread_mutexattr_setrobust_np() 将失败并返回对应的值。


ENOSYS

描述:

选项 _POSIX_THREAD_PRIO__INHERIT 未定义,或者该实现不支持 pthread_mutexattr_setrobust_np()


ENOTSUP

描述:

robustness 指定的值不受支持。

pthread_mutexattr_setrobust_np() 可能会在出现以下情况时失败:


EINVAL

描述:

attrrobustness 指定的值无效。