|
pthread_mutex_unlock(3)
Contents
|
pthread_mutex_unlock - Unlocks the specified mutex
#include <pthread.h>
int pthread_mutex_unlock(
pthread_mutex_t *mutex );
DECthreads POSIX 1003.1c Library (libpthread.so)
Interfaces documented on this reference page conform to
industry standards as follows:
IEEE Std 1003.1c-1995, POSIX System Application Program
Interface
Mutex to be unlocked.
This routine unlocks the mutex specified by the mutex
argument.
This routine behaves as follows, based on the type of the
specified mutex: For a normal, default, or errorcheck
mutex: if the mutex is owned by the calling thread, it is
unlocked with no current owner. Further, for a normal or
default mutex: if the mutex is not locked or is locked by
another thread, this routine can also return [EPERM], but
this is not guaranteed. For an errorcheck mutex: if the
mutex is not locked or is locked by another thread, this
routine returns [EPERM]. For a recursive mutex: if the
mutex is owned by the calling thread, the lock count is
decremented. The mutex remains locked and owned until the
lock count reaches zero (0). When the lock count reaches
zero, the mutex becomes unlocked with no current owner.
If one or more threads are waiting to lock the specified
mutex, and the mutex becomes unlocked, this routine causes
one thread to unblock and to try to acquire the mutex. The
scheduling policy is used to determine which thread to
unblock. For the SCHED_FIFO and SCHED_RR policies, a
blocked thread is chosen in priority order, using firstin/first-out
within priorities. Note that the mutex might
not be acquired by the awakened thread if any other running
thread attempts to lock the mutex first.
On Tru64 UNIX, if a signal is delivered to a thread waiting
for a mutex, upon return from the signal handler, the
thread resumes waiting for the mutex as if it was not
interrupted.
If an error condition occurs, this routine returns an
integer value indicating the type of error. Possible
return values are as follows: Successful completion. The
value specified for mutex is invalid. The calling thread
does not own the mutex.
None
Functions: pthread_mutexattr_settype(3),
pthread_mutex_destroy(3), pthread_mutex_init(3),
pthread_mutex_lock(3), pthread_mutex_trylock(3)
Manuals: Guide to DECthreads and Programmer's Guide
pthread_mutex_unlock(3)
[ Back ] |