Home | History | Annotate | Download | only in 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 >