logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface

Application Usage

       It is advised that an application should not use a PTHREAD_MUTEX_RECURSIVE mutex with condition variables
       because the implicit unlock performed for  a  pthread_cond_timedwait()  or  pthread_cond_wait()  may  not
       actually  release  the mutex (if it had been locked multiple times). If this happens, no other thread can
       satisfy the condition of the predicate.

Description

       The  pthread_mutexattr_gettype()  and  pthread_mutexattr_settype() functions, respectively, shall get and
       set the mutex type attribute. This attribute is set in the type parameter to these functions. The default
       value of the type attribute is PTHREAD_MUTEX_DEFAULT.

       The type of mutex is contained in the type attribute of the mutex attributes. Valid mutex types include:

              PTHREAD_MUTEX_NORMAL PTHREAD_MUTEX_ERRORCHECK PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_DEFAULT

       The mutex type affects the behavior of calls which lock and unlock the  mutex.  See  pthread_mutex_lock()
       for details. An implementation may map PTHREAD_MUTEX_DEFAULT to one of the other mutex types.

       The  behavior  is undefined if the value specified by the attr argument to pthread_mutexattr_gettype() or
       pthread_mutexattr_settype() does not refer to an initialized mutex attributes object.

Errors

       The pthread_mutexattr_settype() function shall fail if:

       EINVAL The value type is invalid.

       These functions shall not return an error code of [EINTR].

       Thefollowingsectionsareinformative.

Examples

       None.

Future Directions

       None.

Name

       pthread_mutexattr_gettype, pthread_mutexattr_settype — get and set the mutex type attribute

Prolog

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

Rationale

       If an implementation detects that the value specified by the attr argument to pthread_mutexattr_gettype()
       or pthread_mutexattr_settype()  does  not  refer  to  an  initialized  mutex  attributes  object,  it  is
       recommended that the function should fail and report an [EINVAL] error.

Return Value

       Upon successful completion, the pthread_mutexattr_gettype() function shall  return  zero  and  store  the
       value of the type attribute of attr into the object referenced by the type parameter. Otherwise, an error
       shall be returned to indicate the error.

       If  successful,  the  pthread_mutexattr_settype()  function shall return zero; otherwise, an error number
       shall be returned to indicate the error.

See Also

pthread_cond_timedwait(), pthread_mutex_lock()

       The Base Definitions volume of POSIX.1‐2017, <pthread.h>

Synopsis

       #include <pthread.h>

       int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict attr,
           int *restrict type);
       int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);

See Also