Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       sem_post - unlock a semaphore (REALTIME)

SYNOPSIS

       #include <semaphore.h>

       int sem_post(sem_t *sem);

DESCRIPTION

       The  sem_post()  function  shall  unlock the semaphore referenced by sem by performing a semaphore unlock
       operation on that semaphore.

       If the semaphore value resulting from this operation is positive, then no threads  were  blocked  waiting
       for the semaphore to become unlocked; the semaphore value is simply incremented.

       If  the  value  of  the  semaphore resulting from this operation is zero, then one of the threads blocked
       waiting for the semaphore shall be allowed to return successfully from its call to sem_wait().    If  the
       Process  Scheduling  option  is  supported,  the  thread  to  be  unblocked  shall  be chosen in a manner
       appropriate to the scheduling policies and parameters in effect for the blocked threads. In the  case  of
       the  schedulers  SCHED_FIFO  and SCHED_RR, the highest priority waiting thread shall be unblocked, and if
       there is more than one highest priority thread blocked  waiting  for  the  semaphore,  then  the  highest
       priority thread that has been waiting the longest shall be unblocked. If the Process Scheduling option is
       not defined, the choice of a thread to unblock is unspecified.

       If the Process Sporadic Server option is supported, and the  scheduling  policy  is  SCHED_SPORADIC,  the
       semantics are as per SCHED_FIFO above.

       The  sem_post()  function  shall  be  reentrant with respect to signals and may be invoked from a signal-
       catching function.

RETURN VALUE

       If successful, the sem_post() function shall return zero; otherwise, the function shall return -1 and set
       errno to indicate the error.

ERRORS

       The sem_post() function shall fail if:

       EINVAL The sem argument does not refer to a valid semaphore.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The   sem_post()  function  is  part  of  the  Semaphores  option  and  need  not  be  available  on  all
       implementations.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       semctl() , semget() , semop() , sem_timedwait() , sem_trywait()  ,  sem_wait()  ,  the  Base  Definitions
       volume of IEEE Std 1003.1-2001, <semaphore.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition,
       Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open  Group  Base
       Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers,
       Inc and The Open Group. In the event of any discrepancy between this version and the  original  IEEE  and
       The  Open  Group  Standard,  the  original  IEEE and The Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .