Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. <HTML
  2. ><HEAD
  3. ><TITLE
  4. >SDL_SemWait</TITLE
  5. ><META
  6. NAME="GENERATOR"
  7. CONTENT="Modular DocBook HTML Stylesheet Version 1.64
  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_DestroySemaphore"
  17. HREF="sdldestroysemaphore.html"><LINK
  18. REL="NEXT"
  19. TITLE="SDL_SemTryWait"
  20. HREF="sdlsemtrywait.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. WIDTH="100%"
  32. BORDER="0"
  33. CELLPADDING="0"
  34. CELLSPACING="0"
  35. ><TR
  36. ><TH
  37. COLSPAN="3"
  38. ALIGN="center"
  39. >SDL Library Documentation</TH
  40. ></TR
  41. ><TR
  42. ><TD
  43. WIDTH="10%"
  44. ALIGN="left"
  45. VALIGN="bottom"
  46. ><A
  47. HREF="sdldestroysemaphore.html"
  48. >Prev</A
  49. ></TD
  50. ><TD
  51. WIDTH="80%"
  52. ALIGN="center"
  53. VALIGN="bottom"
  54. ></TD
  55. ><TD
  56. WIDTH="10%"
  57. ALIGN="right"
  58. VALIGN="bottom"
  59. ><A
  60. HREF="sdlsemtrywait.html"
  61. >Next</A
  62. ></TD
  63. ></TR
  64. ></TABLE
  65. ><HR
  66. ALIGN="LEFT"
  67. WIDTH="100%"></DIV
  68. ><H1
  69. ><A
  70. NAME="SDLSEMWAIT"
  71. >SDL_SemWait</A
  72. ></H1
  73. ><DIV
  74. CLASS="REFNAMEDIV"
  75. ><A
  76. NAME="AEN7474"
  77. ></A
  78. ><H2
  79. >Name</H2
  80. >SDL_SemWait&nbsp;--&nbsp;Lock a semaphore and suspend the thread if the semaphore value is zero.</DIV
  81. ><DIV
  82. CLASS="REFSYNOPSISDIV"
  83. ><A
  84. NAME="AEN7477"
  85. ></A
  86. ><H2
  87. >Synopsis</H2
  88. ><DIV
  89. CLASS="FUNCSYNOPSIS"
  90. ><A
  91. NAME="AEN7478"
  92. ></A
  93. ><P
  94. ></P
  95. ><PRE
  96. CLASS="FUNCSYNOPSISINFO"
  97. >#include "SDL.h"
  98. #include "SDL_thread.h"</PRE
  99. ><P
  100. ><CODE
  101. ><CODE
  102. CLASS="FUNCDEF"
  103. >int <B
  104. CLASS="FSFUNC"
  105. >SDL_SemWait</B
  106. ></CODE
  107. >(SDL_sem *sem);</CODE
  108. ></P
  109. ><P
  110. ></P
  111. ></DIV
  112. ></DIV
  113. ><DIV
  114. CLASS="REFSECT1"
  115. ><A
  116. NAME="AEN7484"
  117. ></A
  118. ><H2
  119. >Description</H2
  120. ><P
  121. ><TT
  122. CLASS="FUNCTION"
  123. >SDL_SemWait()</TT
  124. > suspends the calling thread until either
  125. the semaphore pointed to by <TT
  126. CLASS="PARAMETER"
  127. ><I
  128. >sem</I
  129. ></TT
  130. > has a positive value,
  131. the call is interrupted by a signal or error. If the call is successful it
  132. will atomically decrement the semaphore value.</P
  133. ><P
  134. >After <TT
  135. CLASS="FUNCTION"
  136. >SDL_SemWait()</TT
  137. > is successful, the semaphore
  138. can be released and its count atomically incremented by a successful call to
  139. <A
  140. HREF="sdlsempost.html"
  141. >SDL_SemPost</A
  142. >.</P
  143. ></DIV
  144. ><DIV
  145. CLASS="REFSECT1"
  146. ><A
  147. NAME="AEN7492"
  148. ></A
  149. ><H2
  150. >Return Value</H2
  151. ><P
  152. >Returns <SPAN
  153. CLASS="RETURNVALUE"
  154. >0</SPAN
  155. > if successful or
  156. <SPAN
  157. CLASS="RETURNVALUE"
  158. >-1</SPAN
  159. > if there was an error (leaving the semaphore unchanged).</P
  160. ></DIV
  161. ><DIV
  162. CLASS="REFSECT1"
  163. ><A
  164. NAME="AEN7497"
  165. ></A
  166. ><H2
  167. >Examples</H2
  168. ><P
  169. ><PRE
  170. CLASS="PROGRAMLISTING"
  171. >if (SDL_SemWait(my_sem) == -1) {
  172.         return WAIT_FAILED;
  173. }
  174.  
  175. ...
  176.  
  177. SDL_SemPost(my_sem);</PRE
  178. ></P
  179. ></DIV
  180. ><DIV
  181. CLASS="REFSECT1"
  182. ><A
  183. NAME="AEN7501"
  184. ></A
  185. ><H2
  186. >See Also</H2
  187. ><P
  188. ><A
  189. HREF="sdlcreatesemaphore.html"
  190. ><TT
  191. CLASS="FUNCTION"
  192. >SDL_CreateSemaphore</TT
  193. ></A
  194. >,
  195. <A
  196. HREF="sdldestroysemaphore.html"
  197. ><TT
  198. CLASS="FUNCTION"
  199. >SDL_DestroySemaphore</TT
  200. ></A
  201. >,
  202. <A
  203. HREF="sdlsemtrywait.html"
  204. ><TT
  205. CLASS="FUNCTION"
  206. >SDL_SemTryWait</TT
  207. ></A
  208. >,
  209. <A
  210. HREF="sdlsemwaittimeout.html"
  211. ><TT
  212. CLASS="FUNCTION"
  213. >SDL_SemWaitTimeout</TT
  214. ></A
  215. >,
  216. <A
  217. HREF="sdlsempost.html"
  218. ><TT
  219. CLASS="FUNCTION"
  220. >SDL_SemPost</TT
  221. ></A
  222. >,
  223. <A
  224. HREF="sdlsemvalue.html"
  225. ><TT
  226. CLASS="FUNCTION"
  227. >SDL_SemValue</TT
  228. ></A
  229. ></P
  230. ></DIV
  231. ><DIV
  232. CLASS="NAVFOOTER"
  233. ><HR
  234. ALIGN="LEFT"
  235. WIDTH="100%"><TABLE
  236. WIDTH="100%"
  237. BORDER="0"
  238. CELLPADDING="0"
  239. CELLSPACING="0"
  240. ><TR
  241. ><TD
  242. WIDTH="33%"
  243. ALIGN="left"
  244. VALIGN="top"
  245. ><A
  246. HREF="sdldestroysemaphore.html"
  247. >Prev</A
  248. ></TD
  249. ><TD
  250. WIDTH="34%"
  251. ALIGN="center"
  252. VALIGN="top"
  253. ><A
  254. HREF="index.html"
  255. >Home</A
  256. ></TD
  257. ><TD
  258. WIDTH="33%"
  259. ALIGN="right"
  260. VALIGN="top"
  261. ><A
  262. HREF="sdlsemtrywait.html"
  263. >Next</A
  264. ></TD
  265. ></TR
  266. ><TR
  267. ><TD
  268. WIDTH="33%"
  269. ALIGN="left"
  270. VALIGN="top"
  271. >SDL_DestroySemaphore</TD
  272. ><TD
  273. WIDTH="34%"
  274. ALIGN="center"
  275. VALIGN="top"
  276. ><A
  277. HREF="thread.html"
  278. >Up</A
  279. ></TD
  280. ><TD
  281. WIDTH="33%"
  282. ALIGN="right"
  283. VALIGN="top"
  284. >SDL_SemTryWait</TD
  285. ></TR
  286. ></TABLE
  287. ></DIV
  288. ></BODY
  289. ></HTML
  290. >