Updated: April 19, 2023 |
Unlock a forksafe mutex
#include <forksafe_mutex.h> int forksafe_mutex_unlock( forksafe_mutex_t* mutex );
libc, libforksafe_mutex
In QNX Neutrino 7.1 or later, there are two versions of the forksafe_mutex_*() functions:
The forksafe_mutex_unlock() function unlocks the forksafe mutex mutex. The mutex should be owned by the calling thread. If there are threads blocked on the mutex then the highest priority waiting thread is unblocked and becomes the next owner of the mutex.
If the thread's priority was raised when a higher-priority thread attempted to lock the mutex, the calling thread's priority is again adjusted when it unlocks the mutex; its new priority is the maximum of its own priority and the priorities of those threads it still blocks, either directly or indirectly. For more information, see Mutexes: mutual exclusion locks in the QNX Neutrino Microkernel chapter of the System Architecture guide.
If mutex has been locked more than once, it must be unlocked the same number of times before the next thread is given ownership of the mutex. This works only for recursive mutexes.
For more information about forksafe mutexes, see Using fork() in a multithreaded process in the Processes and Threads chapter of Getting Started with QNX Neutrino.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |