xref: /freebsd/lib/libc/gen/sem_post.3 (revision 49ba8a68f05ce2564caca1795c1b140eb3b645be)
1c5e7e03aSRuslan Ermilov.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
2b0a1b4f8SJason Evans.\" All rights reserved.
3b0a1b4f8SJason Evans.\"
4b0a1b4f8SJason Evans.\" Redistribution and use in source and binary forms, with or without
5b0a1b4f8SJason Evans.\" modification, are permitted provided that the following conditions
6b0a1b4f8SJason Evans.\" are met:
7b0a1b4f8SJason Evans.\" 1. Redistributions of source code must retain the above copyright
8b0a1b4f8SJason Evans.\"    notice(s), this list of conditions and the following disclaimer as
9b0a1b4f8SJason Evans.\"    the first lines of this file unmodified other than the possible
10b0a1b4f8SJason Evans.\"    addition of one or more copyright notices.
11b0a1b4f8SJason Evans.\" 2. Redistributions in binary form must reproduce the above copyright
12b0a1b4f8SJason Evans.\"    notice(s), this list of conditions and the following disclaimer in
13b0a1b4f8SJason Evans.\"    the documentation and/or other materials provided with the
14b0a1b4f8SJason Evans.\"    distribution.
15b0a1b4f8SJason Evans.\"
16b0a1b4f8SJason Evans.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
17b0a1b4f8SJason Evans.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18b0a1b4f8SJason Evans.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19b0a1b4f8SJason Evans.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
20b0a1b4f8SJason Evans.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21b0a1b4f8SJason Evans.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22b0a1b4f8SJason Evans.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23b0a1b4f8SJason Evans.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24b0a1b4f8SJason Evans.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25b0a1b4f8SJason Evans.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26b0a1b4f8SJason Evans.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27b0a1b4f8SJason Evans.\"
28b0a1b4f8SJason Evans.\" $FreeBSD$
2926b6c45aSRuslan Ermilov.\"
30*49ba8a68SJilles Tjoelker.Dd January 28, 2015
31b0a1b4f8SJason Evans.Dt SEM_POST 3
32b0a1b4f8SJason Evans.Os
33b0a1b4f8SJason Evans.Sh NAME
34b0a1b4f8SJason Evans.Nm sem_post
35b0a1b4f8SJason Evans.Nd increment (unlock) a semaphore
36d8a78688SAlexey Zelkin.Sh LIBRARY
37fccedf06SRuslan Ermilov.Lb libc
38b0a1b4f8SJason Evans.Sh SYNOPSIS
3932eef9aeSRuslan Ermilov.In semaphore.h
40b0a1b4f8SJason Evans.Ft int
41b0a1b4f8SJason Evans.Fn sem_post "sem_t *sem"
42b0a1b4f8SJason Evans.Sh DESCRIPTION
43b0a1b4f8SJason EvansThe
44b0a1b4f8SJason Evans.Fn sem_post
45b0a1b4f8SJason Evansfunction increments (unlocks) the semaphore pointed to by
46b0a1b4f8SJason Evans.Fa sem .
47b0a1b4f8SJason EvansIf there are threads blocked on the semaphore when
48b0a1b4f8SJason Evans.Fn sem_post
49b0a1b4f8SJason Evansis called, then the highest priority thread that has been blocked the longest on
50b0a1b4f8SJason Evansthe semaphore will be allowed to return from
51b0a1b4f8SJason Evans.Fn sem_wait .
52b167c9a5SJason Evans.Pp
53ab165955SPhilippe CharnierThe
54b167c9a5SJason Evans.Fn sem_post
55ab165955SPhilippe Charnierfunction is signal-reentrant and may be called within signal handlers.
56b0a1b4f8SJason Evans.Sh RETURN VALUES
57b1250632SYaroslav Tykhiy.Rv -std sem_post
58b0a1b4f8SJason Evans.Sh ERRORS
59ab165955SPhilippe CharnierThe
60b0a1b4f8SJason Evans.Fn sem_post
61ab165955SPhilippe Charnierfunction will fail if:
62b0a1b4f8SJason Evans.Bl -tag -width Er
63b0a1b4f8SJason Evans.It Bq Er EINVAL
6426b6c45aSRuslan ErmilovThe
65b0a1b4f8SJason Evans.Fa sem
6626b6c45aSRuslan Ermilovargument
67b0a1b4f8SJason Evanspoints to an invalid semaphore.
68*49ba8a68SJilles Tjoelker.It Bq Er EOVERFLOW
69*49ba8a68SJilles TjoelkerThe semaphore value would exceed
70*49ba8a68SJilles Tjoelker.Dv SEM_VALUE_MAX .
71b0a1b4f8SJason Evans.El
72b0a1b4f8SJason Evans.Sh SEE ALSO
737a6d1e6fSRobert Watson.Xr sem_getvalue 3 ,
7482db3da3SJason Evans.Xr sem_trywait 3 ,
7515096da3SJohn Baldwin.Xr sem_wait 3
76b0a1b4f8SJason Evans.Sh STANDARDS
77ab165955SPhilippe CharnierThe
78b0a1b4f8SJason Evans.Fn sem_post
79ab165955SPhilippe Charnierfunction conforms to
80096841ecSRuslan Ermilov.St -p1003.1-96 .
81