|
VMS Help CRTL, sem_post, Description *Conan The Librarian |
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.
|
|