VMS Help  —  POSIX Threads, PTHREAD routines, pthread_mutex_unlock, 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.
Close Help