- /* priority ceiling if, for now, ignored */
- return pthread_mutex_init(mutex, NULL);
+ pthread_mutexattr_t mutex_attr;
+
+ /* prioceiling serves as a flag */
+ if (prioceiling) {
+ /* We use priority inheritance as the default protocol */
+ pthread_mutexattr_init(&mutex_attr);
+ pthread_mutexattr_setprotocol(&mutex_attr, PTHREAD_PRIO_INHERIT);
+
+ return pthread_mutex_init(mutex, &mutex_attr);
+ } else
+ return pthread_mutex_init(mutex, NULL);