Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sem_post(3) — Tru64 UNIX 5.1b

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sem_trywait(3)

sem_wait(3)

sem_post(3)  —  Subroutines

NAME

sem_post − Unlocks a semaphore (P1003.1b)

SYNOPSIS

#include <semaphore.h>
 
int sem_post (
sem_t ∗sem);

LIBRARY

Realtime Library (librt.so, librt.a)

PARAMETERS

semPointer to the semaphore to be unlocked. 

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. 

RETURN VALUES

On successful completion, the sem_post function returns the value 0 (zero) and performs a semaphore unlock operation, unblocking a process. 

Otherwise, the function returns the value −1 and sets errno to indicate the error.  The state of the semaphore remains unchanged. 

ERRORS

The sem_post function fails under the following condition:

[EINVAL]
The sem does not refer to a valid semaphore. 

SEE ALSO

Functions: sem_trywait(3), sem_wait(3)

Guide to Realtime Programming

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026