4 >SDL_CreateSemaphore</TITLE
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
10 TITLE="SDL Library Documentation"
11 HREF="index.html"><LINK
13 TITLE="Multi-threaded Programming"
14 HREF="thread.html"><LINK
17 HREF="sdlmutexv.html"><LINK
19 TITLE="SDL_DestroySemaphore"
20 HREF="sdldestroysemaphore.html"></HEAD
31 SUMMARY="Header navigation table"
40 >SDL Library Documentation</TH
62 HREF="sdldestroysemaphore.html"
73 NAME="SDLCREATESEMAPHORE"
75 >SDL_CreateSemaphore</H1
83 >SDL_CreateSemaphore -- Creates a new semaphore and assigns an initial value to it.</DIV
85 CLASS="REFSYNOPSISDIV"
99 CLASS="FUNCSYNOPSISINFO"
101 #include "SDL_thread.h"</PRE
108 >SDL_CreateSemaphore</B
110 >(Uint32 initial_value);</CODE
126 >SDL_CreateSemaphore()</TT
127 > creates a new semaphore and
128 initializes it with the value <TT
134 Each locking operation on the semaphore by
136 HREF="sdlsemwait.html"
140 HREF="sdlsemtrywait.html"
144 HREF="sdlsemwaittimeout.html"
145 >SDL_SemWaitTimeout</A
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
150 HREF="sdlsempost.html"
153 will atomically increment the semaphore value.</P
163 >Returns a pointer to an initialized semaphore or
167 > if there was an error.</P
178 CLASS="PROGRAMLISTING"
181 my_sem = SDL_CreateSemaphore(INITIAL_SEM_VALUE);
183 if (my_sem == NULL) {
184 return CREATE_SEM_FAILED;
197 HREF="sdldestroysemaphore.html"
200 >SDL_DestroySemaphore</TT
204 HREF="sdlsemwait.html"
211 HREF="sdlsemtrywait.html"
218 HREF="sdlsemwaittimeout.html"
221 >SDL_SemWaitTimeout</TT
225 HREF="sdlsempost.html"
232 HREF="sdlsemvalue.html"
244 SUMMARY="Footer navigation table"
255 HREF="sdlmutexv.html"
273 HREF="sdldestroysemaphore.html"
297 >SDL_DestroySemaphore</TD