for connected embedded systems
![]() |
![]() |
![]() |
![]() |
pthread_mutexattr_setprotocol()
Set a mutex's scheduling protocol
Synopsis:
#include <pthread.h>
int pthread_mutexattr_setprotocol(
pthread_mutexattr * attr,
int protocol );
Arguments:
- attr
- A pointer to the pthread_mutexattr_t object that you want to set the attribute in.
- protocol
- The new value of the scheduling protocol; one of:
- PTHREAD_PRIO_INHERIT -- when a thread is blocking higher-priority threads by locking one or more mutexes with this attribute, raise the thread's priority to that of the highest priority thread waiting on the PTHREAD_PRIO_INHERIT mutex.
- PTHREAD_PRIO_PROTECT -- execute the thread at the highest priority or priority ceilings of all the mutexes owned by the thread and initialized with PTHREAD_PRIO_PROTECT, whether other threads are blocked or not.

The POSIX protocol of PTHREAD_PRIO_NONE isn't currently supported.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_mutexattr_setprotocol() function sets the mutex attribute attr's scheduling protocol to protocol. The structure pointed to by attr must have been previously created with pthread_mutexattr_init().
The protocol attribute defines the protocol for using mutexes. A thread holding a PTHREAD_PRIO_INHERIT mutex won't be moved to the tail of the scheduling queue if its original priority is changed (by a call to pthread_schedsetparam(), for example). This remains true if the thread unlocks the PTHREAD_PRIO_INHERIT mutex.
Returns:
- EOK
- Success.
- ENOTSUP
- The protocol argument is an unsupported or an invalid value.
Classification:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Yes |
See also:
pthread_mutexattr_getprotocol(), pthread_mutexattr_getrecursive()
"Mutexes: mutual exclusion locks" in the QNX Neutrino Microkernel chapter of the System Architecture guide
![]() |
![]() |
![]() |
![]() |

![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)