pthread_mutexattr_getprioceiling(3C) 可用来获取互斥锁属性对象的优先级上限属性。
#include <pthread.h> int pthread_mutexattr_getprioceiling(const pthread_mutexatt_t *attr, int *prioceiling);
attr 指定以前调用 pthread_mutexattr_init() 时创建的属性对象。
仅当定义了 _POSIX_THREAD_PRIO_PROTECT 符号时,attr 互斥锁属性对象才会包括优先级上限属性。
pthread_mutexattr_getprioceiling() 返回 prioceiling 中已初始化互斥锁的优先级上限。优先级上限定义执行互斥锁保护的临界段时的最低优先级。prioceiling 位于 SCHED_FIFO 所定义的优先级的最大范围内。要避免优先级倒置,请将 prioceiling 设置为高于或等于可能会锁定特定互斥锁的所有线程的最高优先级。
如果成功完成,pthread_mutexattr_getprioceiling() 会返回 0。其他任何返回值都表示出现了错误。
如果出现以下任一情况,pthread_mutexattr_getprioceiling() 将失败并返回对应的值。
ENOSYS
描述:_POSIX_THREAD_PRIO_PROTECT 选项未定义并且该实现不支持此函数。
如果出现以下任一情况,pthread_mutexattr_getprioceiling() 可能会失败并返回对应的值。
EINVAL
描述:attr 指定的值无效。
EPERM
描述:调用方无权执行该操作。