The following applies only if the symbol _POSIX_THREAD_PRIO_INHERIT is defined, and for mutexes that have been initialized with the
protocol attribute having the value PTHREAD_PRIO_INHERIT.
See pthread_mutexattr_getprotocol(3THR).
The mutex object referenced by mutex is made
consistent by calling pthread_mutex_consistent_np().
A consistent mutex becomes inconsistent and is unlocked if its owner
dies while holding it. A subsequent owner of the mutex will acquire the
mutex with pthread_mutex_lock(3THR),
which will return EOWNERDEAD to indicate that the
acquired mutex is inconsistent.
The pthread_mutex_consistent_np() function should
be called while holding the mutex acquired by a previous call to pthread_mutex_lock()that returned EOWNERDEAD.
Since the critical section protected by the mutex could have been
left in an inconsistent state by the dead owner, the caller should make
the mutex consistent only if it is able to make the critical section protected
by the mutex consistent.
Calls to pthread_mutex_lock(), pthread_mutex_unlock(), and pthread_mutex_trylock() for a consistent
mutex will behave in the normal manner.
The behavior of pthread_mutex_consistent_np() for
a mutex which is not inconsistent, or which is not held, is undefined.
|