pthread_mutexattr_setrecursive()

Updated: April 19, 2023

Set the recursive attribute in mutex attribute object

Synopsis:

#include <pthread.h>

int pthread_mutexattr_setrecursive(
        pthread_mutexattr_t* attr,
        int recursive );

Arguments:

attr
A pointer to the pthread_mutexattr_t object that you want to set the attribute in.
recursive
The new value for the recursive attribute; one of:
  • PTHREAD_RECURSIVE_ENABLE — a thread that has already locked the mutex can lock it again without blocking.
  • PTHREAD_RECURSIVE_DISABLE — any thread that tries to lock the mutex blocks, if that mutex is already locked.

The default value of the recursive attribute is PTHREAD_RECURSIVE_DISABLE.

Library:

libc

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

Description:

The pthread_mutexattr_setrecursive() function sets the recursive attribute in the mutex attribute object attr to the value given by recursive.

Note: The pthread_mutexattr_settype() function provides a more portable way to make a mutex recursive.

Returns:

EOK
Success.
EINVAL
Invalid mutex attribute object, attr, or the value specified by recursive isn't PTHREAD_RECURSIVE_ENABLE or PTHREAD_RECURSIVE_DISABLE.

Classification:

QNX Neutrino

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