Unix/Linux Go Back    


NetBSD 6.1.5 - man page for pthread_mutexattr_destroy (netbsd section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


PTHREAD_MUTEXATTR(3)		   BSD Library Functions Manual 	     PTHREAD_MUTEXATTR(3)

NAME
     pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_settype,
     pthread_mutexattr_gettype -- mutex attribute operations

LIBRARY
     POSIX Threads Library (libpthread, -lpthread)

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 type);

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

DESCRIPTION
     Mutex attributes are used to specify parameters to pthread_mutex_init().  Like with thread
     attributes, one attribute object can be used in multiple calls to pthread_mutex_init(3),
     with or without modifications between calls.

     The pthread_mutexattr_init() function initializes attr with all the default mutex
     attributes.

     The pthread_mutexattr_destroy() function destroys attr.

     The pthread_mutexattr_settype() functions set the mutex type value of the attribute.  Valid
     mutex types are:

       PTHREAD_MUTEX_NORMAL
	    This type of mutex does not check for usage errors.  It will deadlock if reentered,
	    and result in undefined behavior if a locked mutex is unlocked by another thread.
	    Attempts to unlock an already unlocked PTHREAD_MUTEX_NORMAL mutex will result in
	    undefined behavior.

       PTHREAD_MUTEX_ERRORCHECK
	    These mutexes do check for usage errors.  If an attempt is made to relock a
	    PTHREAD_MUTEX_ERRORCHECK mutex without first dropping the lock, an error will be
	    returned.  If a thread attempts to unlock a PTHREAD_MUTEX_ERRORCHECK mutex that is
	    locked by another thread, an error will be returned.  If a thread attempts to unlock
	    a PTHREAD_MUTEX_ERRORCHECK thread that is unlocked, an error will be returned.

       PTHREAD_MUTEX_RECURSIVE
	    These mutexes allow recursive locking.  An attempt to relock a
	    PTHREAD_MUTEX_RECURSIVE mutex that is already locked by the same thread succeeds.  An
	    equivalent number of pthread_mutex_unlock(3) calls are needed before the mutex will
	    wake another thread waiting on this lock.  If a thread attempts to unlock a
	    PTHREAD_MUTEX_RECURSIVE mutex that is locked by another thread, an error will be
	    returned.  If a thread attempts to unlock a PTHREAD_MUTEX_RECURSIVE thread that is
	    unlocked, an error will be returned.

	    It is advised that PTHREAD_MUTEX_RECURSIVE mutexes are not used with condition vari-
	    ables.  This is because of the implicit unlocking done by pthread_cond_wait(3) and
	    pthread_cond_timedwait(3).

       PTHREAD_MUTEX_DEFAULT
	    Also this type of mutex will cause undefined behavior if reentered.  Unlocking a
	    PTHREAD_MUTEX_DEFAULT mutex locked by another thread will result in undefined behav-
	    ior.  Attempts to unlock an already unlocked PTHREAD_MUTEX_DEFAULT mutex will result
	    in undefined behavior.

	    This is the default mutex type for pthread_mutexaddr_init().

     The pthread_mutexattr_gettype() functions copy the type value of the attribute to the loca-
     tion pointed to by the second parameter.

RETURN VALUES
     If successful, these functions return 0.  Otherwise, an error number is returned to indicate
     the error.

ERRORS
     The pthread_mutexattr_init() function shall fail if:

     [ENOMEM]		Insufficient memory exists to initialize the mutex attributes object.

     The pthread_mutexattr_settype() function shall fail if:

     [EINVAL]		The value specified either by type or attr is invalid.

     No error numbers are defined for the pthread_mutexattr_destroy() and
     pthread_mutexattr_gettype() functions.

SEE ALSO
     pthread_mutex_init(3)

STANDARDS
     These functions conform to IEEE Std 1003.1-2001 (``POSIX.1'').

BSD					   July 9, 2010 				      BSD
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 09:25 AM.