mirror of https://github.com/mkerrisk/man-pages
89 lines
3.1 KiB
Plaintext
89 lines
3.1 KiB
Plaintext
|
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
||
|
.TH "SEM_POST" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
||
|
.\" sem_post
|
||
|
.SH NAME
|
||
|
sem_post \- unlock a semaphore (\fBREALTIME\fP)
|
||
|
.SH SYNOPSIS
|
||
|
.LP
|
||
|
\fB#include <semaphore.h>
|
||
|
.br
|
||
|
.sp
|
||
|
int sem_post(sem_t *\fP\fIsem\fP\fB); \fP
|
||
|
\fB
|
||
|
.br
|
||
|
\fP
|
||
|
.SH DESCRIPTION
|
||
|
.LP
|
||
|
The \fIsem_post\fP() function shall unlock the semaphore referenced
|
||
|
by \fIsem\fP by performing a semaphore unlock operation on
|
||
|
that semaphore.
|
||
|
.LP
|
||
|
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.
|
||
|
.LP
|
||
|
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 \fIsem_wait\fP().
|
||
|
\ 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.
|
||
|
.LP
|
||
|
If
|
||
|
the Process Sporadic Server option is supported, and the scheduling
|
||
|
policy is SCHED_SPORADIC, the semantics are as per SCHED_FIFO
|
||
|
above.
|
||
|
.LP
|
||
|
The \fIsem_post\fP() function shall be reentrant with respect to signals
|
||
|
and may be invoked from a signal-catching
|
||
|
function.
|
||
|
.SH RETURN VALUE
|
||
|
.LP
|
||
|
If successful, the \fIsem_post\fP() function shall return zero; otherwise,
|
||
|
the function shall return -1 and set \fIerrno\fP to
|
||
|
indicate the error.
|
||
|
.SH ERRORS
|
||
|
.LP
|
||
|
The \fIsem_post\fP() function shall fail if:
|
||
|
.TP 7
|
||
|
.B EINVAL
|
||
|
The \fIsem\fP argument does not refer to a valid semaphore.
|
||
|
.sp
|
||
|
.LP
|
||
|
\fIThe following sections are informative.\fP
|
||
|
.SH EXAMPLES
|
||
|
.LP
|
||
|
None.
|
||
|
.SH APPLICATION USAGE
|
||
|
.LP
|
||
|
The \fIsem_post\fP() function is part of the Semaphores option and
|
||
|
need not be available on all implementations.
|
||
|
.SH RATIONALE
|
||
|
.LP
|
||
|
None.
|
||
|
.SH FUTURE DIRECTIONS
|
||
|
.LP
|
||
|
None.
|
||
|
.SH SEE ALSO
|
||
|
.LP
|
||
|
\fIsemctl\fP() , \fIsemget\fP() , \fIsemop\fP()
|
||
|
, \fIsem_timedwait\fP() , \fIsem_trywait\fP() , \fIsem_wait\fP() ,
|
||
|
the Base Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<semaphore.h>\fP
|
||
|
.SH 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 .
|