pthread_mutex_setprioceiling()

Updated: April 19, 2023

Set a mutex's priority ceiling

Synopsis:

#include <pthread.h>

int pthread_mutex_setprioceiling( 
                     pthread_mutex_t* mutex, 
                     int prioceiling, 
                     int* old_ceiling );

Arguments:

mutex
A pointer to the pthread_mutex_t object that you want to priority ceiling for.
prioceiling
The new value for the priority ceiling.
old_ceiling
A pointer to a location where the function can store the old value.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_mutex_setprioceiling() function locks mutex (or blocks until it can lock it), changes its priority ceiling to prioceiling, and releases it. When the change is successful, the previous priority ceiling is returned in old_ceiling.

Note: In order to change the priority ceiling to a value above the maximum permitted for unprivileged processes, your process must have the PROCMGR_AID_PRIORITY ability enabled. For more information, see procmgr_ability().

Returns:

EOK
Success.
EINVAL
The mutex specified by mutex doesn't currently exist, or the priority requested by prioceiling is out of range.
EPERM
The calling process doesn't have the required permission; see procmgr_ability().

Classification:

POSIX 1003.1 RPP|TPP

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes