PTHREAD_MUTEXATTR(3) | Library Functions Manual | PTHREAD_MUTEXATTR(3) |
pthread_mutexattr_init
,
pthread_mutexattr_destroy
,
pthread_mutexattr_setprioceiling
,
pthread_mutexattr_getprioceiling
,
pthread_mutexattr_setprotocol
,
pthread_mutexattr_getprotocol
,
pthread_mutexattr_settype
,
pthread_mutexattr_gettype
,
pthread_mutexattr_getpshared
,
pthread_mutexattr_setpshared
—
#include <pthread.h>
int
pthread_mutexattr_init
(pthread_mutexattr_t
*attr);
int
pthread_mutexattr_destroy
(pthread_mutexattr_t
*attr);
int
pthread_mutexattr_setprioceiling
(pthread_mutexattr_t
*attr, int
prioceiling);
int
pthread_mutexattr_getprioceiling
(pthread_mutexattr_t
*attr, int
*prioceiling);
int
pthread_mutexattr_setprotocol
(pthread_mutexattr_t
*attr, int
protocol);
int
pthread_mutexattr_getprotocol
(pthread_mutexattr_t
*attr, int
*protocol);
int
pthread_mutexattr_settype
(pthread_mutexattr_t
*attr, int
type);
int
pthread_mutexattr_gettype
(pthread_mutexattr_t
* restrict attr, int *
restrict type);
int
pthread_mutexattr_getpshared
(const
pthread_mutexattr_t * __restrict attr,
int * __restrict
pshared);
int
pthread_mutexattr_setpshared
(pthread_mutexattr_t
* attr, int
pshared);
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
PTHREAD_MUTEX_NORMAL
mutex will result in
undefined behavior.PTHREAD_MUTEX_ERRORCHECK
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
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 variables. This is because of the implicit unlocking done
by
pthread_cond_wait(3)
and
pthread_cond_timedwait(3).
PTHREAD_MUTEX_DEFAULT
PTHREAD_MUTEX_DEFAULT
mutex locked by
another thread will result in undefined behavior. Attempts to unlock an
already unlocked PTHREAD_MUTEX_DEFAULT
mutex will
result in undefined behavior.
This is the default mutex type for
pthread_mutexattr_init
().
The pthread_mutexattr_gettype
() functions
copy the type value of the attribute to the location pointed to by the
second parameter.
The pthread_mutexattr_getpshared
()
function obtains the value of the process-shared attribute from the
attributes object referenced by attr.
The pthread_mutexattr_setpshared
()
function is used to set the process-shared attribute in an initialised
attributes object referenced by attr.
The pthread_mutexattr_getprotocol
() and
pthread_mutexattr_setprotocol
() functions shall get
and set the protocol attribute of a mutex attributes object pointed to by
attr which was previously created by the function
pthread_mutexattr_init
().
The pthread_mutexattr_getprioceiling
() and
pthread_mutexattr_setprioceiling
() functions, shall
get and set the priority ceiling attribute of a mutex attributes object
pointed to by attr which was previously created by the
function pthread_mutexattr_init
().
pthread_mutexattr_init
() function shall fail if:
ENOMEM
]The pthread_mutexattr_settype
() function
shall fail if:
EINVAL
]No error numbers are defined for the
pthread_mutexattr_destroy
() and
pthread_mutexattr_gettype
() functions.
pthread_mutexattr_setprioceiling
() may
fail if:
EINVAL
]pthread_mutexattr_getprioceiling
() may
fail if:
EINVAL
]pthread_mutexattr_setprotocol
() may fail
if:
EINVAL
]pthread_mutexattr_getprotocol
() may fail
if:
EINVAL
]pthread_mutexattr_getpshared
() and
pthread_mutexattr_setpshared
() may fail if:
EINVAL
]pthread_mutexattr_getpshared
() and
pthread_mutexattr_setpshared
() functions are hidden by
default since only thread shared attributes are supported.
June 12, 2016 | NetBSD 9.0 |