pthread_mutexattr_settype man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

PTHREAD_MUTEXATTR_GETTYPE(3C)			 PTHREAD_MUTEXATTR_GETTYPE(3C)

NAME
       pthread_mutexattr_gettype, pthread_mutexattr_settype - get or set mutex
       type

SYNOPSIS
       cc -mt [ flag... ] file... -lpthread [ library... ]
       #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(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Standard	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ MT-Safe	      │
       └────────────────────┴─────────────────┘

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

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.

				 Mar 23, 2005	 PTHREAD_MUTEXATTR_GETTYPE(3C)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net