pthread_mutex_lock(3thr)
Name
pthread_mutex_lock − Locks an unlocked mutex. If the mutex is locked, this routine causes the thread to wait for the mutex to become available
Syntax
#include <pthread.h>
int pthread_mutex_lock (mutex)
pthread_mutex_t *mutex;
Arguments
mutex Mutex locked.
Description
This routine locks a mutex. If the mutex is locked when a thread calls this routine, the thread waits for the mutex to become available.
The thread that has locked a mutex becomes its current owner and remains the owner until the same thread has unlocked it. This routine returns with the mutex in the locked state and with the current thread as the mutex’s current owner.
If you specified a fast mutex in a call to pthread_mutexattr_setkind_np, a deadlock can result if the current owner of a mutex calls this routine in an attempt to lock the mutex a second time. If you specified a recursive mutex in a call to pthread_mutexattr_setkind_np, the current owner of a mutex can relock the same mutex without blocking.
Return Values
If an error condition occurs, this routine returns -1 and sets errno to the corresponding error value. Possible return values are as follows.
| Return | Error | Description |
| 0 | Successful completion. | |
| -1 | [EINVAL] | The value specified by mutex is invalid. |
| -1 | [EDEADLK] | A deadlock condition is detected. |