dwww Home | Manual pages | Find package

PTHREAD_MUTEXATTR(3)       Library Functions Manual       PTHREAD_MUTEXATTR(3)

NAME
       pthread_mutexattr_init,    pthread_mutexattr_destroy,    pthread_mutex-
       attr_settype, pthread_mutexattr_gettype - 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_settype(pthread_mutexattr_t *attr, int kind);

       int  pthread_mutexattr_gettype(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 reinitialized. pthread_mutexattr_destroy does
       nothing in the LinuxThreads implementation.

       LinuxThreads  supports  only one mutex attribute: the mutex kind, which
       is either PTHREAD_MUTEX_FAST_NP for ``fast'' mutexes, PTHREAD_MUTEX_RE-
       CURSIVE_NP  for  ``recursive''  mutexes, or PTHREAD_MUTEX_ERRORCHECK_NP
       for ``error checking'' 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_mu-
       tex_lock(3) returns immediately with a success return code. The  number
       of  times  the thread owning the mutex has locked it is recorded in the
       mutex. The owning thread must  call  pthread_mutex_unlock(3)  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_settype  sets the mutex kind attribute in attr to the
       value specified by kind.

       pthread_mutexattr_gettype 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_mutex-
       attr_gettype always return 0.

       pthread_mutexattr_settype returns 0 on success  and  a  non-zero  error
       code on error.

ERRORS
       On error, pthread_mutexattr_settype returns the following error code:

       EINVAL kind  is  neither PTHREAD_MUTEX_FAST_NP nor PTHREAD_MUTEX_RECUR-
              SIVE_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).

                                 LinuxThreads             PTHREAD_MUTEXATTR(3)

Generated by dwww version 1.15 on Mon Jun 24 18:52:20 CEST 2024.