Purpose
This function is used to set the mutex type attribute in the mutex
attributes object identified by the argument mattr The argument type
identifies the mutex type attribute to be set.
Class
Function
Argument Type and Attributes
- mattr
- TYPE(f_pthread_mutexattr_t), INTENT(INOUT)
- type
- INTEGER(4), INTENT(IN)
Must contain one of the following values:
- PTHREAD_MUTEX_NORMAL
- 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.
- 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 which another thread has locked will
return 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.
- PTHREAD_MUTEX_DEFAULT
- The same as PTHREAD_MUTEX_NORMAL.
Result Type and Attributes
INTEGER(4)
Result Value
On successful completion, this function returns 0. Otherwise,
this function returns the following error.
- EINVAL
- One of the arguments is invalid.
