Locks an unlocked mutex. If the mutex is locked, causes the thread to wait for the mutex to become available.
pthread_mutex_lock( mutex );
Argument Data Type Accessmutex opaque pthread_mutex_t read
int pthread_mutex_lock ( pthread_mutex_t *mutex);
If you specified a recursive mutex, the current owner of a mutex can relock the same mutex without blocking. If you specified a nonrecursive mutex and the current owner tries to lock the mutex a second time, the EDEADLK error is reported. If the mutex is locked when a thread calls this routine, the thread waits for the mutex to become available. If you specified a fast mutex, a deadlock can result if the current owner of a mutex calls this routine in an attempt to lock the mutex a second time.
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. See pthread_mutexattr_ setkind_np for information about fast, recursive, and nonrecursive mutexes.
Return Error Description0 Successful completion. -1 [EINVAL] The value specified by mutex is invalid. -1 [EDEADLK] A deadlock condition is detected.