pthread_mutexattr_init, pthread_mutexattr_destroy,
pthread_mutexattr_setkind_np, pthread_mutexattr_getkind_np
- mutex creation attributes
SYNOPSIS
#include <pthread.h>
int pthread_mutexattr_init(pthread_mutexattr_t *attr);
int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);
int pthread_mutexattr_setkind_np(pthread_mutexattr_t
*attr, int kind);
int pthread_mutexattr_getkind_np(const pthread_mutexattr_t
*attr, int *kind);
DESCRIPTION
Mutex attributes can be specified at mutex creation time,
by passing a mutex attribute object as second argument to
pthread_mutex_init(3). Passing NULL is equivalent to
passing a mutex attribute object with all attributes set
to their default values.
pthread_mutexattr_init initializes the mutex attribute
object attr and fills it with default values for the
attributes.
pthread_mutexattr_destroy destroys a mutex attribute
object, which must not be reused until it is reinitial
ized. pthread_mutexattr_destroy does nothing in the Lin
uxThreads implementation.
LinuxThreads supports only one mutex attribute: the mutex
kind, which is either PTHREAD_MUTEX_FAST_NP for ``fast''
mutexes, PTHREAD_MUTEX_RECURSIVE_NP for ``recursive''
mutexes, or PTHREAD_MUTEX_ERRORCHECK_NP for ``error check
ing'' mutexes. As the NP suffix indicates, this is a non-
portable extension to the POSIX standard and should not be
employed in portable programs.
The mutex kind determines what happens if a thread
attempts to lock a mutex it already owns with
pthread_mutex_lock(3). If the mutex is of the ``fast''
kind, pthread_mutex_lock(3) simply suspends the calling
thread forever. If the mutex is of the ``error checking''
kind, pthread_mutex_lock(3) returns immediately with the
error code EDEADLK. If the mutex is of the ``recursive''
kind, the call to pthread_mutex_lock(3) returns immedi
ately with a success return code. The number of times the
thread owning the mutex has locked it is recorded in the
the same number of times before the mutex returns to the
unlocked state.
The default mutex kind is ``fast'', that is,
PTHREAD_MUTEX_FAST_NP.
pthread_mutexattr_setkind_np sets the mutex kind attribute
in attr to the value specified by kind.
pthread_mutexattr_getkind_np retrieves the current value
of the mutex kind attribute in attr and stores it in the
location pointed to by kind.
RETURN VALUE
pthread_mutexattr_init, pthread_mutexattr_destroy and
pthread_mutexattr_getkind_np always return 0.
pthread_mutexattr_setkind_np returns 0 on success and a
non-zero error code on error.
ERRORS
On error, pthread_mutexattr_setkind_np returns the follow
ing error code:
EINVAL kind is neither PTHREAD_MUTEX_FAST_NP nor
PTHREAD_MUTEX_RECURSIVE_NP nor
PTHREAD_MUTEX_ERRORCHECK_NP
AUTHOR
Xavier Leroy <Xavier.Leroy@inria.fr>
SEE ALSO
pthread_mutex_init(3), pthread_mutex_lock(3),
pthread_mutex_unlock(3).
Man(1) output converted with
man2html