HELPLIB.HLB  —  POSIX Threads, PTHREAD routines, pthread_mutex_unlock
    Unlocks the specified mutex.

1  –  C Binding

    #include <pthread.h>

    int
    pthread_mutex_unlock (
             pthread_mutex_t   *mutex);

2  –  Arguments

 mutex

    Mutex to be unlocked.

3  –  Description

    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.

4  –  Return Values

    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.

5  –  Associated Routines

       pthread_mutexattr_settype()
       pthread_mutex_destroy()
       pthread_mutex_init()
       pthread_mutex_lock()
       pthread_mutex_trylock()
Close Help