Content-type: text/html Man page of sem_post

sem_post

Section: C Library Functions (3)
Index Return to Main Contents
 

NAME

sem_post - Unlock a semaphore (P1003.1b)  

SYNOPSIS

#include <semaphore.h>

int sem_post (
sem_t *sem);  

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 amount of time 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 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.
 

RELATED INFORMATION

Functions: sem_trywait(3), sem_wait(3) delim off


 

Index

NAME
SYNOPSIS
PARAMETERS
DESCRIPTION
RETURN VALUES
ERRORS
RELATED INFORMATION

This document was created by man2html, using the manual pages.
Time: 02:40:46 GMT, October 02, 2010