pthread_mutex_setprioceiling Subroutine Purpose Dynamically sets the value of the prioceiling attribute of a mutex. Library Threads Library (libpthreads.a) Syntax #include
int pthread_mutex_setprioceiling (mutex, prioceiling, oldceiling) pthread_mutex_t *mutex; int prioceiling; int *oldceiling; Description The pthread_mutex_setprioceiling subroutine dynamically sets the value of the prioceiling attribute of the mutex mutex. This attribute specifies the priority ceiling of the mutex, used in the priority protection protocol to prevent priority inversions. It has no meaning if the mutex uses another protocol. It first locks the mutex (waiting if the mutex is already locked), then changes the value of the prioceiling attribute, and finally unlocks the mutex. Note: The pthread.h header file must be the first included file of each source file using the threads library. Parameters mutex Specifies the target mutex. prioceiling Specifies the priority ceiling to set. It must be in the range from 1 to 127, where 1 is the least favored priority, and 127 the most favored; it should be the priority of the highest priority thread that can lock the mutex lock, or higher. Setting a lower value may cause priority inversions. oldceiling Points to where the previous prioceiling attribute value will be stored. Return Values Upon successful completion, the previous value of the prioceiling attribute is returned via the oldceiling parameter, and 0 is returned. Otherwise, an error code is returned. Error Codes The pthread_mutex_setprioceiling subroutine is unsuccessful if the following is true: EINVAL The mutex parameter is not valid or the requested value for prioceiling is not within the valid range. ENOSYS The priority protection POSIX option is not implemented. EPERM The calling thread does not have sufficient privilege to perform the operation. ESRCH The mutex mutex does not exist. Implementation Specifics This subroutine is part of the Base Operating System (BOS) Runtime. The implementation of this subroutine is dependent on the priority protection POSIX option. The priority protection POSIX option is not implemented in the current version of AIX. Related Information The pthread_mutex_getprioceiling subroutine, pthread_mutexattr_setprioceiling subroutine. Synchronization Scheduling. Threads Library Options. Threads Library Quick Reference.