pthread_mutexattr_getpshared(3T)pthread_mutexattr_getpshared(3T)NAMEpthread_mutexattr_getpshared(), pthread_mutexattr_setpshared(),
pthread_mutexattr_gettype(), pthread_mutexattr_settype() - get and set
the process-shared attribute and type attribute
SYNOPSISPARAMETERS
attr Pointer to the mutex attributes object whose
attributes are to be set/retrieved.
pshared This parameter either specifies the new value of the
process-shared attribute (set function) or points to
the memory location where the process-shared attribute
of attr is to be returned (get function).
type This parameter either specifies the new value of the
type attribute (set function) or points to the memory
location where the type attribute of attr is to be
returned (get function).
DESCRIPTION
The attributes object attr must have been previously initialized with
the function before these functions are called.
ATTRIBUTE: pshared
Mutexes can be used by threads only within a process or shared by
threads in multiple processes. The process-shared attribute in a mutex
attributes object describes who may use the mutex. The legal values
for the process-shared attribute are:
This option permits a mutex to be operated upon by any thread
that has access
to the memory where the mutex is allocated. The applica‐
tion is responsible for allocating the mutex in memory
that multiple processes can access.
The mutex can be operated upon only by threads created within
the same process
as the thread that initialized the mutex. If threads of
differing processes attempt to operate on such mutex, the
behavior is undefined.
The default value of process-shared is
is used to set the process-shared attribute in attr. The new value of
the process-shared attribute of attr is set to the value specified in
the pshared parameter.
retrieves the value of the process-shared attribute from attr. The
value of the process-shared attribute of attr is returned in the
pshared parameter.
ATTRIBUTE: type
Mutexes can be created with four different types. The type of a mutex
is contained in the type attribute of the mutex attributes object.
Valid values for the type attribute are:
This type of mutex does not provide deadlock detection.
A thread attempting to relock this mutex without first
unlocking it shall deadlock. An error is not returned to
the caller. Attempting to unlock a mutex locked by a
different thread results in undefined behavior. Attempt‐
ing to unlock an unlocked mutex results in undefined
behavior.
This type of mutex provides error checking. An owner
field is maintained. Only the mutex lock owner shall
successfully unlock this mutex. A thread attempting to
relock this mutex shall return with an error. A thread
attempting to unlock a mutex locked by a different thread
shall return with an error. A thread attempting to
unlock an unlocked mutex shall return with an error.
This type of mutex is useful for debugging.
Deadlock cannot occur with this type of mutex. An owner
field is maintained. A thread attempting to relock this
mutex shall successfully lock the mutex. Multiple locks
of this mutex shall require the same number of unlocks to
release the mutex before another thread can lock the
mutex. A thread attempting to unlock a mutex locked by a
different thread shall return with an error. A thread
attempting to unlock an unlocked mutex shall return with
an error.
This type of mutex does not provide deadlock detection.
A thread attempting to relock this mutex without first
unlocking it shall deadlock. An error is not returned to
the caller. This type of mutex can be unlocked by a
thread other than the owner. Attempting to unlock an
unlocked mutex results in undefined behavior.
Attempting to recursively lock a mutex of this type results in
undefined behavior. Attempting to unlock a mutex locked
by a different thread results in undefined behavior.
Attempting to unlock an unlocked mutex results in unde‐
fined behavior. An implementation shall be allowed to
map this mutex to one of the other mutex types.
The default value of the type attribute is
is used to set the type attribute in attr. The new value of the type
attribute of attr is set to the value specified in the type parameter.
retrieves the value of the type attribute from attr. The value of the
type attribute of attr is returned in the type parameter.
Never use a mutex with condition variables because the implicit unlock
performed for a or may not actually release the mutex if it had been
locked multiple times. If this situation happens, no other thread can
satisfy the condition of the predicate.
RETURN VALUE
Upon successful completion, and return zero. Otherwise, an error num‐
ber is returned to indicate the error (the variable is not set).
ERRORS
If any of the following occur, the and functions return the correspond‐
ing error number:
is not defined and these functions are not supported.
For each of the following conditions, if the condition is detected, the
and functions return the corresponding error number:
attr is not a valid mutex attributes object.
The value specified by
pshared or type is not a legal value. The value
pshared or type points to an illegal address.
WARNINGS
If a mutex is created with the process-shared attribute defined as the
cooperating processes should have access to the memory in which the
mutex is allocated.
AUTHOR
and were derived from the IEEE POSIX P1003.1c standard.
and were developed by X/Open.
SEE ALSOpthread_create(3T), pthread_mutexattr_init(3T), pthread_mutex_init(3T).
STANDARDS CONFORMANCE
Pthread Librarpthread_mutexattr_getpshared(3T)