Initial standalone code, some stuff runs
[sdl_omap.git] / docs / html / sdlsemtrywait.html
CommitLineData
e14743d1 1<HTML
2><HEAD
3><TITLE
4>SDL_SemTryWait</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_SemWait"
17HREF="sdlsemwait.html"><LINK
18REL="NEXT"
19TITLE="SDL_SemWaitTimeout"
20HREF="sdlsemwaittimeout.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="sdlsemwait.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="sdlsemwaittimeout.html"
63ACCESSKEY="N"
64>Next</A
65></TD
66></TR
67></TABLE
68><HR
69ALIGN="LEFT"
70WIDTH="100%"></DIV
71><H1
72><A
73NAME="SDLSEMTRYWAIT"
74></A
75>SDL_SemTryWait</H1
76><DIV
77CLASS="REFNAMEDIV"
78><A
79NAME="AEN8069"
80></A
81><H2
82>Name</H2
83>SDL_SemTryWait&nbsp;--&nbsp;Attempt to lock a semaphore but don't suspend the thread.</DIV
84><DIV
85CLASS="REFSYNOPSISDIV"
86><A
87NAME="AEN8072"
88></A
89><H2
90>Synopsis</H2
91><DIV
92CLASS="FUNCSYNOPSIS"
93><A
94NAME="AEN8073"
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_SemTryWait</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="AEN8079"
120></A
121><H2
122>Description</H2
123><P
124><TT
125CLASS="FUNCTION"
126>SDL_SemTryWait</TT
127> is a non-blocking varient of
128<A
129HREF="sdlsemwait.html"
130><TT
131CLASS="FUNCTION"
132>SDL_SemWait</TT
133></A
134>. If the value of the semaphore
135pointed to by <TT
136CLASS="PARAMETER"
137><I
138>sem</I
139></TT
140> is positive it will atomically
141decrement the semaphore value and return 0, otherwise it will return
142<SPAN
143CLASS="RETURNVALUE"
144>SDL_MUTEX_TIMEDOUT</SPAN
145> instead of suspending the thread.</P
146><P
147>After <TT
148CLASS="FUNCTION"
149>SDL_SemTryWait</TT
150> is successful, the semaphore
151can be released and its count atomically incremented by a successful call to
152<A
153HREF="sdlsempost.html"
154>SDL_SemPost</A
155>.</P
156></DIV
157><DIV
158CLASS="REFSECT1"
159><A
160NAME="AEN8090"
161></A
162><H2
163>Return Value</H2
164><P
165>Returns <SPAN
166CLASS="RETURNVALUE"
167>0</SPAN
168> if the semaphore was successfully locked or
169either <SPAN
170CLASS="RETURNVALUE"
171>SDL_MUTEX_TIMEDOUT</SPAN
172> or <SPAN
173CLASS="RETURNVALUE"
174>-1</SPAN
175>
176if the thread would have suspended or there was an error, respectivly.</P
177><P
178>If the semaphore was not successfully locked, the semaphore will be unchanged.</P
179></DIV
180><DIV
181CLASS="REFSECT1"
182><A
183NAME="AEN8097"
184></A
185><H2
186>Examples</H2
187><P
188><PRE
189CLASS="PROGRAMLISTING"
190>res = SDL_SemTryWait(my_sem);
191
192if (res == SDL_MUTEX_TIMEDOUT) {
193 return TRY_AGAIN;
194}
195if (res == -1) {
196 return WAIT_ERROR;
197}
198
199...
200
201SDL_SemPost(my_sem);</PRE
202></P
203></DIV
204><DIV
205CLASS="REFSECT1"
206><A
207NAME="AEN8101"
208></A
209><H2
210>See Also</H2
211><P
212><A
213HREF="sdlcreatesemaphore.html"
214><TT
215CLASS="FUNCTION"
216>SDL_CreateSemaphore</TT
217></A
218>,
219<A
220HREF="sdldestroysemaphore.html"
221><TT
222CLASS="FUNCTION"
223>SDL_DestroySemaphore</TT
224></A
225>,
226<A
227HREF="sdlsemwait.html"
228><TT
229CLASS="FUNCTION"
230>SDL_SemWait</TT
231></A
232>,
233<A
234HREF="sdlsemwaittimeout.html"
235><TT
236CLASS="FUNCTION"
237>SDL_SemWaitTimeout</TT
238></A
239>,
240<A
241HREF="sdlsempost.html"
242><TT
243CLASS="FUNCTION"
244>SDL_SemPost</TT
245></A
246>,
247<A
248HREF="sdlsemvalue.html"
249><TT
250CLASS="FUNCTION"
251>SDL_SemValue</TT
252></A
253></P
254></DIV
255><DIV
256CLASS="NAVFOOTER"
257><HR
258ALIGN="LEFT"
259WIDTH="100%"><TABLE
260SUMMARY="Footer navigation table"
261WIDTH="100%"
262BORDER="0"
263CELLPADDING="0"
264CELLSPACING="0"
265><TR
266><TD
267WIDTH="33%"
268ALIGN="left"
269VALIGN="top"
270><A
271HREF="sdlsemwait.html"
272ACCESSKEY="P"
273>Prev</A
274></TD
275><TD
276WIDTH="34%"
277ALIGN="center"
278VALIGN="top"
279><A
280HREF="index.html"
281ACCESSKEY="H"
282>Home</A
283></TD
284><TD
285WIDTH="33%"
286ALIGN="right"
287VALIGN="top"
288><A
289HREF="sdlsemwaittimeout.html"
290ACCESSKEY="N"
291>Next</A
292></TD
293></TR
294><TR
295><TD
296WIDTH="33%"
297ALIGN="left"
298VALIGN="top"
299>SDL_SemWait</TD
300><TD
301WIDTH="34%"
302ALIGN="center"
303VALIGN="top"
304><A
305HREF="thread.html"
306ACCESSKEY="U"
307>Up</A
308></TD
309><TD
310WIDTH="33%"
311ALIGN="right"
312VALIGN="top"
313>SDL_SemWaitTimeout</TD
314></TR
315></TABLE
316></DIV
317></BODY
318></HTML
319>