bionic (3) sem_post.3posix.gz

Provided by: manpages-posix-dev_2013a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

NAME

       sem_post — unlock a semaphore

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 async-signal-safe 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 may fail if:

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

       The following sections are informative.

EXAMPLES

       See sem_timedwait().

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       semctl(), semget(), semop(), sem_timedwait(), sem_trywait()

       The Base Definitions volume of POSIX.1‐2008, Section 4.11, Memory Synchronization, <semaphore.h>

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2013 Edition,
       Standard  for  Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electrical and Electronics Engineers,  Inc
       and  The  Open Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) 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.unix.org/online.html .

       Any typographical or formatting errors that appear in this page are most likely to have  been  introduced
       during   the   conversion  of  the  source  files  to  man  page  format.  To  report  such  errors,  see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .