pthread_mutexattr_gettype(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

pthread_mutexattr_gettype(3c)

Standard C Library Functions
                                                 pthread_mutexattr_gettype(3C)



NAME
       pthread_mutexattr_gettype, pthread_mutexattr_settype - get or set mutex
       type

SYNOPSIS
       #include <pthread.h>

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


       int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);

DESCRIPTION
       The pthread_mutexattr_gettype() and  pthread_mutexattr_settype()  func‐
       tions respectively 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        This type of mutex does  not  detect  dead‐
                                   lock.  A  thread  attempting to relock this
                                   mutex without first unlocking it will dead‐
                                   lock.  Attempting  to unlock a mutex locked
                                   by a different thread results in  undefined
                                   behavior.  Attempting to unlock an unlocked
                                   mutex results in undefined behavior.


       PTHREAD_MUTEX_ERRORCHECK    This type of mutex provides error checking.
                                   A  thread  attempting  to relock this mutex
                                   without first unlocking it will return with
                                   an  error.  A thread attempting to unlock a
                                   mutex that another thread has  locked  will
                                   return  with  an error. A thread attempting
                                   to unlock an  unlocked  mutex  will  return
                                   with an error.


       PTHREAD_MUTEX_RECURSIVE     A  thread  attempting  to relock this mutex
                                   without first unlocking it will succeed  in
                                   locking  the  mutex. The relocking deadlock
                                   that  can  occur  with  mutexes   of   type
                                   PTHREAD_MUTEX_NORMAL cannot occur with this
                                   type of mutex. Multiple locks of this mutex
                                   require  the  same  number  of  unlocks  to
                                   release the mutex before another thread can
                                   acquire  the  mutex. A thread attempting to
                                   unlock a  mutex  that  another  thread  has
                                   locked  will return with an error. A thread
                                   attempting to unlock an unlocked mutex will
                                   return with an error. This type of mutex is
                                   only supported for  mutexes  whose  process
                                   shared  attribute  is  PTHREAD_PROCESS_PRI‐
                                   VATE.


       PTHREAD_MUTEX_DEFAULT       Attempting to recursively lock a  mutex  of
                                   this  type  results  in undefined behavior.
                                   Attempting to unlock a mutex of  this  type
                                   that  was  not locked by the calling thread
                                   results in undefined  behavior.  Attempting
                                   to  unlock a mutex of this type that is not
                                   locked results in  undefined  behavior.  An
                                   implementation is allowed to map this mutex
                                   to one of the other mutex types.


RETURN VALUES
       Upon successful completion,  the  pthread_mutexattr_settype()  function
       returns  0.  Otherwise,  an  error  number  is returned to indicate the
       error.


       Upon successful completion,  the  pthread_mutexattr_gettype()  function
       returns  0  and  stores  the value of the type attribute of attr in the
       object referenced by the type parameter. Otherwise an error  number  is
       returned to indicate the error.

ERRORS
       The  pthread_mutexattr_gettype()  and pthread_mutexattr_settype() func‐
       tions will fail if:

       EINVAL    The value type is invalid.



       The pthread_mutexattr_gettype() and  pthread_mutexattr_settype()  func‐
       tions may fail if:

       EINVAL    The value specified by attr is invalid.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe _  Stan‐
       dardSee standards(7).


SEE ALSO
       pthread_cond_timedwait(3C), pthread_cond_wait(3C), attributes(7), stan‐
       dards(7)

NOTES
       Application should not use a PTHREAD_MUTEX_RECURSIVE mutex with  condi‐
       tion    variables   because   the   implicit   unlock   performed   for
       pthread_cond_wait()  or  pthread_cond_timedwait()  will  not   actually
       release  the  mutex  (if  it  had  been locked multiple times). If this
       occurs, no other thread can satisfy the condition of the predicate.



Oracle Solaris 11.4               16 May 2014
                                                 pthread_mutexattr_gettype(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3