Realtime Library Functions sem_post(3RT)NAME
sem_post - increment the count of a semaphoreSYNOPSIS
cc [ flag... ] file... -lrt [ library... ] #include <semaphore.h> int sem_post(sem_t *sem);DESCRIPTION
The sem_post() function unlocks the semaphore referenced by sem by performing a semaphore unlock operation on that sema- phore. 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 0, then one of the threads blocked waiting for the sema- phore will be allowed to return successfully from its call to sem_wait(3RT). If the symbol _POSIX_PRIORITY_SCHEDULING is defined, the thread to be unblocked will 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 will be unblocked, and if there is more than one highest priority thread blocked waiting for the sema- phore, then the highest priority thread that has been wait- ing the longest will be unblocked. If the symbol _POSIX_PRIORITY_SCHEDULING is not defined, the choice of a thread to unblock is unspecified.RETURN VALUES
If successful, sem_post() returns 0; otherwise it returns -1 and sets errno to indicate the error.ERRORS
The sem_post() function will fail if: EINVAL The sem argument does not refer to a valid semaphore. ENOSYS The sem_post() function is not supported by the sys- tem. EOVERFLOW The semaphore value exceeds SEM_VALUE_MAX. SunOS 5.9 Last change: 27 Mar 2000 1 Realtime Library Functions sem_post(3RT)USAGE
The sem_post() function is reentrant with respect to signals and may be invoked from a signal-catching function. The semaphore functionality described on this manual page is for the POSIX (see standards(5)) threads implementation. For the documentation of the Solaris threads interface, see semaphore(3THR)).EXAMPLES
Example 1: See sem_wait(3RT).ATTRIBUTES
See attributes(5) for descriptions of the following attri- butes: ____________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | | MT-Level | Async-Signal-Safe | |_____________________________|_____________________________|SEE ALSO
sched_setscheduler(3RT), sem_wait(3RT), semaphore(3THR), attributes(5), standards(5)