 |
Index for Section 3 |
|
 |
Alphabetical listing for S |
|
 |
Bottom of page |
|
sem_post(3)
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
sem Pointer 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
 |
Index for Section 3 |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|