tune the preloads a bit
[sdl_omap.git] / docs / html / sdlcreatesemaphore.html
CommitLineData
e14743d1 1<HTML
2><HEAD
3><TITLE
4>SDL_CreateSemaphore</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_mutexV"
17HREF="sdlmutexv.html"><LINK
18REL="NEXT"
19TITLE="SDL_DestroySemaphore"
20HREF="sdldestroysemaphore.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="sdlmutexv.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="sdldestroysemaphore.html"
63ACCESSKEY="N"
64>Next</A
65></TD
66></TR
67></TABLE
68><HR
69ALIGN="LEFT"
70WIDTH="100%"></DIV
71><H1
72><A
73NAME="SDLCREATESEMAPHORE"
74></A
75>SDL_CreateSemaphore</H1
76><DIV
77CLASS="REFNAMEDIV"
78><A
79NAME="AEN7936"
80></A
81><H2
82>Name</H2
83>SDL_CreateSemaphore&nbsp;--&nbsp;Creates a new semaphore and assigns an initial value to it.</DIV
84><DIV
85CLASS="REFSYNOPSISDIV"
86><A
87NAME="AEN7939"
88></A
89><H2
90>Synopsis</H2
91><DIV
92CLASS="FUNCSYNOPSIS"
93><A
94NAME="AEN7940"
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>SDL_sem *<B
107CLASS="FSFUNC"
108>SDL_CreateSemaphore</B
109></CODE
110>(Uint32 initial_value);</CODE
111></P
112><P
113></P
114></DIV
115></DIV
116><DIV
117CLASS="REFSECT1"
118><A
119NAME="AEN7946"
120></A
121><H2
122>Description</H2
123><P
124><TT
125CLASS="FUNCTION"
126>SDL_CreateSemaphore()</TT
127> creates a new semaphore and
128initializes it with the value <TT
129CLASS="PARAMETER"
130><I
131>initial_value</I
132></TT
133>.
134Each locking operation on the semaphore by
135<A
136HREF="sdlsemwait.html"
137>SDL_SemWait</A
138>,
139<A
140HREF="sdlsemtrywait.html"
141>SDL_SemTryWait</A
142> or
143<A
144HREF="sdlsemwaittimeout.html"
145>SDL_SemWaitTimeout</A
146>
147will atomically decrement the semaphore value. The locking operation will be blocked
148if the semaphore value is not positive (greater than zero). Each unlock operation by
149<A
150HREF="sdlsempost.html"
151>SDL_SemPost</A
152>
153will atomically increment the semaphore value.</P
154></DIV
155><DIV
156CLASS="REFSECT1"
157><A
158NAME="AEN7955"
159></A
160><H2
161>Return Value</H2
162><P
163>Returns a pointer to an initialized semaphore or
164<SPAN
165CLASS="RETURNVALUE"
166>NULL</SPAN
167> if there was an error.</P
168></DIV
169><DIV
170CLASS="REFSECT1"
171><A
172NAME="AEN7959"
173></A
174><H2
175>Examples</H2
176><P
177><PRE
178CLASS="PROGRAMLISTING"
179>SDL_sem *my_sem;
180
181my_sem = SDL_CreateSemaphore(INITIAL_SEM_VALUE);
182
183if (my_sem == NULL) {
184 return CREATE_SEM_FAILED;
185}</PRE
186></P
187></DIV
188><DIV
189CLASS="REFSECT1"
190><A
191NAME="AEN7963"
192></A
193><H2
194>See Also</H2
195><P
196><A
197HREF="sdldestroysemaphore.html"
198><TT
199CLASS="FUNCTION"
200>SDL_DestroySemaphore</TT
201></A
202>,
203<A
204HREF="sdlsemwait.html"
205><TT
206CLASS="FUNCTION"
207>SDL_SemWait</TT
208></A
209>,
210<A
211HREF="sdlsemtrywait.html"
212><TT
213CLASS="FUNCTION"
214>SDL_SemTryWait</TT
215></A
216>,
217<A
218HREF="sdlsemwaittimeout.html"
219><TT
220CLASS="FUNCTION"
221>SDL_SemWaitTimeout</TT
222></A
223>,
224<A
225HREF="sdlsempost.html"
226><TT
227CLASS="FUNCTION"
228>SDL_SemPost</TT
229></A
230>,
231<A
232HREF="sdlsemvalue.html"
233><TT
234CLASS="FUNCTION"
235>SDL_SemValue</TT
236></A
237></P
238></DIV
239><DIV
240CLASS="NAVFOOTER"
241><HR
242ALIGN="LEFT"
243WIDTH="100%"><TABLE
244SUMMARY="Footer navigation table"
245WIDTH="100%"
246BORDER="0"
247CELLPADDING="0"
248CELLSPACING="0"
249><TR
250><TD
251WIDTH="33%"
252ALIGN="left"
253VALIGN="top"
254><A
255HREF="sdlmutexv.html"
256ACCESSKEY="P"
257>Prev</A
258></TD
259><TD
260WIDTH="34%"
261ALIGN="center"
262VALIGN="top"
263><A
264HREF="index.html"
265ACCESSKEY="H"
266>Home</A
267></TD
268><TD
269WIDTH="33%"
270ALIGN="right"
271VALIGN="top"
272><A
273HREF="sdldestroysemaphore.html"
274ACCESSKEY="N"
275>Next</A
276></TD
277></TR
278><TR
279><TD
280WIDTH="33%"
281ALIGN="left"
282VALIGN="top"
283>SDL_mutexV</TD
284><TD
285WIDTH="34%"
286ALIGN="center"
287VALIGN="top"
288><A
289HREF="thread.html"
290ACCESSKEY="U"
291>Up</A
292></TD
293><TD
294WIDTH="33%"
295ALIGN="right"
296VALIGN="top"
297>SDL_DestroySemaphore</TD
298></TR
299></TABLE
300></DIV
301></BODY
302></HTML
303>