Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Threads Librarypthread_mutex_consistent_np(3THR)


NAME

 pthread_mutex_consistent_np - make a mutex consistent after owner death

SYNOPSIS

 
cc -mt [ flag... ] file... -lpthread [ -lrt library... ]
#include <pthread.h> 
int pthread_mutex_consistent_np(pthread_mutex_t *mutex);

DESCRIPTION

 

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.

RETURN VALUES

 

Upon successful completion, the pthread_mutexattr_consistent_np() function returns 0. Otherwise, an error number is returned to indicate the error.

ERRORS

 

The pthread_mutex_consistent_np() function will fail if:

ENOSYS
The option _POSIX_THREAD_PRIO_INHERIT is not defined and the implementation does not support the function.

The pthread_mutex_consistent_np() function may fail if:

EINVAL
The value specified by mutex is invalid, or the mutex does not have the appropriate attributes.

ATTRIBUTES

 

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
MT-Level MT-Safe

SEE ALSO

 

mutex(3THR), pthread_mutex_lock(3THR), pthread_mutexattr_getprotocol(3THR), pthread_mutexattr_getrobust_np(3THR), attributes(5), standards(5)


SunOS 5.9Go To TopLast Changed 4 Oct 1999

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.