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