VMS Help
POSIX Threads, PTHREAD routines, pthread_mutex_unlock
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Unlocks the specified mutex.
#include <pthread.h>
int
pthread_mutex_unlock (
pthread_mutex_t *mutex);
mutex
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:
o 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].
o 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 first-in/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:
Return Description
0 Successful completion.
[EINVAL] The value specified for mutex is not a valid mutex.
[EPERM] The calling thread does not own the mutex.
pthread_mutexattr_settype()
pthread_mutex_destroy()
pthread_mutex_init()
pthread_mutex_lock()
pthread_mutex_trylock()
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.