Operating systems, development tools, and professional services
for connected embedded systems

QNX Developer Support

[Previous] [Contents] [Index] [Next]

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.

Note: 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:

POSIX 1003.1 THR TPP|TPI

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

See also:

pthread_mutexattr_getprotocol(), pthread_mutexattr_getrecursive()


[Previous] [Contents] [Index] [Next]