mtx_lock()
Lock a mutex
Synopsis:
#include <threads.h>
int mtx_lock( mtx_t *mutex );
Arguments:
- mutex
- A pointer to the mtx_t object that you want to lock.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The mtx_lock() function locks the mutex object referenced by mutex. If the mutex is already locked, then the calling thread blocks until it has acquired the mutex. When the function returns, the mutex object is locked and owned by the calling thread.
By default, if a thread with a higher priority than the mutex owner
attempts to lock a mutex, then the effective priority of the
current owner is increased to that of the
higher-priority blocked thread waiting for the mutex. The
owner returns to its real priority when it unlocks the mutex.
For more information, see
Mutexes: mutual exclusion locks
in the IDE Microkernel chapter of the
System Architecture guide.
If the mutex is recursive, you must call mtx_unlock() for each corresponding call to lock the mutex.
If a signal is delivered to a thread that's waiting for a mutex, the thread resumes waiting for the mutex on returning from the signal handler.
Returns:
- thrd_success
- Success.
- thrd_error
- An error occurred.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | No |
Thread | Yes |