Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pthread_mutexattr_setkind_np(3)

pthread_mutex_destroy(3)

pthread_mutex_init(3)

pthread_mutex_trylock(3)

pthread_mutex_unlock(3)

pthread_mutex_lock(3)  —  Subroutines

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. 

SYNOPSIS

#include <pthread.h>
int pthread_mutex_lock(

pthread_mutex_t ∗mutex );

PARAMETERS

mutexMutex locked. 

DESCRIPTION

This routine locks a mutex and its behavior varies based on the kind of 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 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.

RELATED INFORMATION

pthread_mutexattr_setkind_np(3), pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026