SDL-1.2.14
[sdl_omap.git] / docs / html / sdlsemwait.html
CommitLineData
e14743d1 1<HTML
2><HEAD
3><TITLE
4>SDL_SemWait</TITLE
5><META
6NAME="GENERATOR"
7CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8"><LINK
9REL="HOME"
10TITLE="SDL Library Documentation"
11HREF="index.html"><LINK
12REL="UP"
13TITLE="Multi-threaded Programming"
14HREF="thread.html"><LINK
15REL="PREVIOUS"
16TITLE="SDL_DestroySemaphore"
17HREF="sdldestroysemaphore.html"><LINK
18REL="NEXT"
19TITLE="SDL_SemTryWait"
20HREF="sdlsemtrywait.html"></HEAD
21><BODY
22CLASS="REFENTRY"
23BGCOLOR="#FFF8DC"
24TEXT="#000000"
25LINK="#0000ee"
26VLINK="#551a8b"
27ALINK="#ff0000"
28><DIV
29CLASS="NAVHEADER"
30><TABLE
31SUMMARY="Header navigation table"
32WIDTH="100%"
33BORDER="0"
34CELLPADDING="0"
35CELLSPACING="0"
36><TR
37><TH
38COLSPAN="3"
39ALIGN="center"
40>SDL Library Documentation</TH
41></TR
42><TR
43><TD
44WIDTH="10%"
45ALIGN="left"
46VALIGN="bottom"
47><A
48HREF="sdldestroysemaphore.html"
49ACCESSKEY="P"
50>Prev</A
51></TD
52><TD
53WIDTH="80%"
54ALIGN="center"
55VALIGN="bottom"
56></TD
57><TD
58WIDTH="10%"
59ALIGN="right"
60VALIGN="bottom"
61><A
62HREF="sdlsemtrywait.html"
63ACCESSKEY="N"
64>Next</A
65></TD
66></TR
67></TABLE
68><HR
69ALIGN="LEFT"
70WIDTH="100%"></DIV
71><H1
72><A
73NAME="SDLSEMWAIT"
74></A
75>SDL_SemWait</H1
76><DIV
77CLASS="REFNAMEDIV"
78><A
79NAME="AEN8023"
80></A
81><H2
82>Name</H2
83>SDL_SemWait&nbsp;--&nbsp;Lock a semaphore and suspend the thread if the semaphore value is zero.</DIV
84><DIV
85CLASS="REFSYNOPSISDIV"
86><A
87NAME="AEN8026"
88></A
89><H2
90>Synopsis</H2
91><DIV
92CLASS="FUNCSYNOPSIS"
93><A
94NAME="AEN8027"
95></A
96><P
97></P
98><PRE
99CLASS="FUNCSYNOPSISINFO"
100>#include "SDL.h"
101#include "SDL_thread.h"</PRE
102><P
103><CODE
104><CODE
105CLASS="FUNCDEF"
106>int <B
107CLASS="FSFUNC"
108>SDL_SemWait</B
109></CODE
110>(SDL_sem *sem);</CODE
111></P
112><P
113></P
114></DIV
115></DIV
116><DIV
117CLASS="REFSECT1"
118><A
119NAME="AEN8033"
120></A
121><H2
122>Description</H2
123><P
124><TT
125CLASS="FUNCTION"
126>SDL_SemWait()</TT
127> suspends the calling thread until either
128the semaphore pointed to by <TT
129CLASS="PARAMETER"
130><I
131>sem</I
132></TT
133> has a positive value,
134the call is interrupted by a signal or error. If the call is successful it
135will atomically decrement the semaphore value.</P
136><P
137>After <TT
138CLASS="FUNCTION"
139>SDL_SemWait()</TT
140> is successful, the semaphore
141can be released and its count atomically incremented by a successful call to
142<A
143HREF="sdlsempost.html"
144>SDL_SemPost</A
145>.</P
146></DIV
147><DIV
148CLASS="REFSECT1"
149><A
150NAME="AEN8041"
151></A
152><H2
153>Return Value</H2
154><P
155>Returns <SPAN
156CLASS="RETURNVALUE"
157>0</SPAN
158> if successful or
159<SPAN
160CLASS="RETURNVALUE"
161>-1</SPAN
162> if there was an error (leaving the semaphore unchanged).</P
163></DIV
164><DIV
165CLASS="REFSECT1"
166><A
167NAME="AEN8046"
168></A
169><H2
170>Examples</H2
171><P
172><PRE
173CLASS="PROGRAMLISTING"
174>if (SDL_SemWait(my_sem) == -1) {
175 return WAIT_FAILED;
176}
177
178...
179
180SDL_SemPost(my_sem);</PRE
181></P
182></DIV
183><DIV
184CLASS="REFSECT1"
185><A
186NAME="AEN8050"
187></A
188><H2
189>See Also</H2
190><P
191><A
192HREF="sdlcreatesemaphore.html"
193><TT
194CLASS="FUNCTION"
195>SDL_CreateSemaphore</TT
196></A
197>,
198<A
199HREF="sdldestroysemaphore.html"
200><TT
201CLASS="FUNCTION"
202>SDL_DestroySemaphore</TT
203></A
204>,
205<A
206HREF="sdlsemtrywait.html"
207><TT
208CLASS="FUNCTION"
209>SDL_SemTryWait</TT
210></A
211>,
212<A
213HREF="sdlsemwaittimeout.html"
214><TT
215CLASS="FUNCTION"
216>SDL_SemWaitTimeout</TT
217></A
218>,
219<A
220HREF="sdlsempost.html"
221><TT
222CLASS="FUNCTION"
223>SDL_SemPost</TT
224></A
225>,
226<A
227HREF="sdlsemvalue.html"
228><TT
229CLASS="FUNCTION"
230>SDL_SemValue</TT
231></A
232></P
233></DIV
234><DIV
235CLASS="NAVFOOTER"
236><HR
237ALIGN="LEFT"
238WIDTH="100%"><TABLE
239SUMMARY="Footer navigation table"
240WIDTH="100%"
241BORDER="0"
242CELLPADDING="0"
243CELLSPACING="0"
244><TR
245><TD
246WIDTH="33%"
247ALIGN="left"
248VALIGN="top"
249><A
250HREF="sdldestroysemaphore.html"
251ACCESSKEY="P"
252>Prev</A
253></TD
254><TD
255WIDTH="34%"
256ALIGN="center"
257VALIGN="top"
258><A
259HREF="index.html"
260ACCESSKEY="H"
261>Home</A
262></TD
263><TD
264WIDTH="33%"
265ALIGN="right"
266VALIGN="top"
267><A
268HREF="sdlsemtrywait.html"
269ACCESSKEY="N"
270>Next</A
271></TD
272></TR
273><TR
274><TD
275WIDTH="33%"
276ALIGN="left"
277VALIGN="top"
278>SDL_DestroySemaphore</TD
279><TD
280WIDTH="34%"
281ALIGN="center"
282VALIGN="top"
283><A
284HREF="thread.html"
285ACCESSKEY="U"
286>Up</A
287></TD
288><TD
289WIDTH="33%"
290ALIGN="right"
291VALIGN="top"
292>SDL_SemTryWait</TD
293></TR
294></TABLE
295></DIV
296></BODY
297></HTML
298>