pthread_mutex_lock(3)pthread_mutex_lock(3)NAMEpthread_mutex_lock - Locks an unlocked mutex
SYNOPSIS
#include <pthread.h>
int pthread_mutex_lock(
pthread_mutex_t *mutex );
LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so)
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
IEEE Std 1003.1c-1995, POSIX System Application Program Interface
PARAMETERS
Mutex to be locked.
DESCRIPTION
This routine locks a mutex with behavior that depends upon the type of
mutex, as follows: If a normal or default mutex is specified, a dead‐
lock can result if the current owner of the mutex calls this routine in
an attempt to lock the mutex a second time. (The deadlock is not
detected or reported.) If a recursive mutex is specified, the current
owner of the mutex can relock the same mutex without blocking. The lock
count is incremented for each recursive lock within the thread. If an
errorcheck mutex is specified and the current owner tries to lock the
mutex a second time, this routine reports the [EDEADLK] error. If the
mutex is locked by another thread, the calling thread waits for the
mutex to become available.
Use the pthread_mutexattr_settype(3) routine to set the type of the
mutex to normal, default, recursive, or errorcheck. For more informa‐
tion about types of mutexes, see the description of pthread_mutex‐
attr_settype(3).
The thread that has locked a mutex becomes its current owner and
remains its 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.
A recursive or errorcheck mutex records the identity of the thread that
locks it, allowing debuggers to display this information. In most
cases, normal and default mutexes do not record the owning thread's
identity.
RETURN VALUES
If an error condition occurs, this routine returns an integer value
indicating the type of error. Possible return values are as follows:
Successful completion. A deadlock condition is detected. The value
specified by mutex is not a valid mutex.
ERRORS
None
SEE ALSO
Functions: pthread_mutexattr_settype(3), pthread_mutex_destroy(3),
pthread_mutex_init(3), pthread_mutex_trylock(3),
pthread_mutex_unlock(3)
Manuals: Guide to DECthreads and Programmer's Guide
pthread_mutex_lock(3)