MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions        pthreadmutexattrgettype(3C)



NAME
     pthreadmutexattrgettype, pthreadmutexattrsettype  -  get
     or set mutex type

SYNOPSIS
     cc -mt [ flag... ] file... -lpthread [ library... ]
     #include 

     int pthreadmutexattrgettype(pthreadmutexattrt *restrict attr,
          int *restrict type);


     int pthreadmutexattrsettype(pthreadmutexattrt *attr, int type);


DESCRIPTION
     The             pthreadmutexattrgettype()              and
     pthreadmutexattrsettype()  functions  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 PTHREADMUTEXDEFAULT.


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

     PTHREADMUTEXNORMAL        This  type  of  mutex  does  not
                                 detect    deadlock.   A   thread
                                 attempting to relock this  mutex
                                 without  first unlocking it will
                                 deadlock. Attempting to unlock a
                                 mutex   locked  by  a  different
                                 thread  results   in   undefined
                                 behavior.  Attempting  to unlock
                                 an  unlocked  mutex  results  in
                                 undefined behavior.


     PTHREADMUTEXERORCHECK    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.






SunOS 5.11          Last change: 23 Mar 2005                    1






Standard C Library Functions        pthreadmutexattrgettype(3C)



     PTHREADMUTEXRECURSIVE     A thread  attempting  to  relock
                                 this mutex without first unlock-
                                 ing it will succeed  in  locking
                                 the    mutex.    The   relocking
                                 deadlock  that  can  occur  with
                                 mutexes          of         type
                                 PTHREADMUTEXNORMAL      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
                                 PTHREADPROCESPRIVATE.


     PTHREADMUTEXDEFAULT       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  cal-
                                 ling 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  pthreadmutexattrsettype()
     function  returns  0. Otherwise, an error number is returned
     to indicate the error.


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

ERORS
     The             pthreadmutexattrgettype()              and
     pthreadmutexattrsettype() functions will fail if:



SunOS 5.11          Last change: 23 Mar 2005                    2






Standard C Library Functions        pthreadmutexattrgettype(3C)



     EINVAL    The value type is invalid.



     The             pthreadmutexattrgettype()              and
     pthreadmutexattrsettype() functions may fail if:

     EINVAL    The value specified by attr is invalid.


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     pthreadcondtimedwait(3C),  pthreadcondwait(3C),   attri-
     butes(5), standards(5)

NOTES
     Application should not use a  PTHREADMUTEXRECURSIVE  mutex
     with  condition  variables  because the implicit unlock per-
     formed for pthreadcondwait()  or  pthreadcondtimedwait()
     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.



















SunOS 5.11          Last change: 23 Mar 2005                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™