VMS Help  —  CRTL  sem_post, Description
    The sem_post function unlocks the specified semaphore by
    performing the semaphore unlock operation on that semaphore. The
    appropriate function (sem_open for named semaphores or sem_init
    for unnamed semaphores) must be called for a semaphore before
    you can call the locking and unlocking functions, sem_wait, sem_
    trywait, and sem_post.

    If the semaphore value after a sem_post function is positive, no
    processes were blocked waiting for the semaphore to be unlocked;
    the semaphore value is incremented. If the semaphore value after
    a sem_post function is zero, one of the processes blocked waiting
    for the semaphore is allowed to return successfully from its call
    to sem_wait.

    If more than one process is blocked while waiting for the
    semaphore, only one process is unblocked and the state of
    the semaphore remains unchanged when the sem_post function
    returns. The process to be unblocked is selected according to
    the scheduling policies and priorities of all blocked processes.
    If the scheduling policy is SCHED_FIFO or SCHED_RR, the highest-
    priority waiting process is unblocked. If more than one process
    of that priority is blocked, then the process that has waited the
    longest is unblocked.

    The sem_post function can be called from a signal-catching
    function.
Close Help