class_semaphore.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.9.8"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Torque2D Reference: Semaphore Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. <link href="t2d-stylesheet-extra.css" rel="stylesheet" type="text/css"/>
  17. </head>
  18. <body>
  19. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  20. <div id="titlearea">
  21. <table cellspacing="0" cellpadding="0">
  22. <tbody>
  23. <tr id="projectrow">
  24. <td id="projectalign">
  25. <div id="projectname">Torque2D Reference
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.9.8 -->
  34. <script type="text/javascript">
  35. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  36. var searchBox = new SearchBox("searchBox", "search/",'.html');
  37. /* @license-end */
  38. </script>
  39. <script type="text/javascript" src="menudata.js"></script>
  40. <script type="text/javascript" src="menu.js"></script>
  41. <script type="text/javascript">
  42. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  43. $(function() {
  44. initMenu('',true,false,'search.php','Search');
  45. $(document).ready(function() { init_search(); });
  46. });
  47. /* @license-end */
  48. </script>
  49. <div id="main-nav"></div>
  50. <!-- window showing the filter options -->
  51. <div id="MSearchSelectWindow"
  52. onmouseover="return searchBox.OnSearchSelectShow()"
  53. onmouseout="return searchBox.OnSearchSelectHide()"
  54. onkeydown="return searchBox.OnSearchSelectKey(event)">
  55. </div>
  56. <!-- iframe showing the search results (closed by default) -->
  57. <div id="MSearchResultsWindow">
  58. <div id="MSearchResults">
  59. <div class="SRPage">
  60. <div id="SRIndex">
  61. <div id="SRResults"></div>
  62. <div class="SRStatus" id="Loading">Loading...</div>
  63. <div class="SRStatus" id="Searching">Searching...</div>
  64. <div class="SRStatus" id="NoMatches">No Matches</div>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div><!-- top -->
  70. <div class="header">
  71. <div class="summary">
  72. <a href="#pub-methods">Public Member Functions</a> &#124;
  73. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  74. <a href="#pro-attribs">Protected Attributes</a> &#124;
  75. <a href="class_semaphore-members.html">List of all members</a> </div>
  76. <div class="headertitle"><div class="title">Semaphore Class Reference</div></div>
  77. </div><!--header-->
  78. <div class="contents">
  79. <p><code>#include &lt;semaphore.h&gt;</code></p>
  80. <table class="memberdecls">
  81. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  82. Public Member Functions</h2></td></tr>
  83. <tr class="memitem:a2c7860c271e59ac06e92266e73de7723" id="r_a2c7860c271e59ac06e92266e73de7723"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#a2c7860c271e59ac06e92266e73de7723">Semaphore</a> (S32 initialCount=1)</td></tr>
  84. <tr class="memdesc:a2c7860c271e59ac06e92266e73de7723"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a semaphore. initialCount defaults to 1. <br /></td></tr>
  85. <tr class="separator:a2c7860c271e59ac06e92266e73de7723"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. <tr class="memitem:a5e0394d4ca6109ccb52b3c1e5cf6c9b5" id="r_a5e0394d4ca6109ccb52b3c1e5cf6c9b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#a5e0394d4ca6109ccb52b3c1e5cf6c9b5">~Semaphore</a> ()</td></tr>
  87. <tr class="memdesc:a5e0394d4ca6109ccb52b3c1e5cf6c9b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a semaphore, ignoring it's count. <br /></td></tr>
  88. <tr class="separator:a5e0394d4ca6109ccb52b3c1e5cf6c9b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  89. <tr class="memitem:af111dad5fcf43df4130392480ae1f019" id="r_af111dad5fcf43df4130392480ae1f019"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#af111dad5fcf43df4130392480ae1f019">acquire</a> (bool block=true, S32 timeoutMS=-1)</td></tr>
  90. <tr class="separator:af111dad5fcf43df4130392480ae1f019"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:a23b477d0e2d399f75d585d154c346591" id="r_a23b477d0e2d399f75d585d154c346591"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#a23b477d0e2d399f75d585d154c346591">release</a> ()</td></tr>
  92. <tr class="separator:a23b477d0e2d399f75d585d154c346591"><td class="memSeparator" colspan="2">&#160;</td></tr>
  93. </table><table class="memberdecls">
  94. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  95. Static Public Member Functions</h2></td></tr>
  96. <tr class="memitem:a7a20254adb02a7b006dc64556ad23194" id="r_a7a20254adb02a7b006dc64556ad23194"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#a7a20254adb02a7b006dc64556ad23194">createSemaphore</a> (U32 initialCount=1)</td></tr>
  97. <tr class="separator:a7a20254adb02a7b006dc64556ad23194"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:ab7bcf2c87c474f3d9b51e57d853a3ed1" id="r_ab7bcf2c87c474f3d9b51e57d853a3ed1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#ab7bcf2c87c474f3d9b51e57d853a3ed1">destroySemaphore</a> (void *semaphore)</td></tr>
  99. <tr class="separator:ab7bcf2c87c474f3d9b51e57d853a3ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:ad7ccee8819b0b669c103916140ebd5b1" id="r_ad7ccee8819b0b669c103916140ebd5b1"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#ad7ccee8819b0b669c103916140ebd5b1">acquireSemaphore</a> (void *semaphore, bool block=true)</td></tr>
  101. <tr class="separator:ad7ccee8819b0b669c103916140ebd5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. <tr class="memitem:a23ae790a1b84fb624f04fd2ad97618fb" id="r_a23ae790a1b84fb624f04fd2ad97618fb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#a23ae790a1b84fb624f04fd2ad97618fb">releaseSemaphore</a> (void *semaphore)</td></tr>
  103. <tr class="separator:a23ae790a1b84fb624f04fd2ad97618fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. </table><table class="memberdecls">
  105. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
  106. Protected Attributes</h2></td></tr>
  107. <tr class="memitem:ab336c1d69355cd5546fe5db425fac01b" id="r_ab336c1d69355cd5546fe5db425fac01b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_platform_semaphore.html">PlatformSemaphore</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_semaphore.html#ab336c1d69355cd5546fe5db425fac01b">mData</a></td></tr>
  108. <tr class="separator:ab336c1d69355cd5546fe5db425fac01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  109. </table>
  110. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  111. <a id="a2c7860c271e59ac06e92266e73de7723" name="a2c7860c271e59ac06e92266e73de7723"></a>
  112. <h2 class="memtitle"><span class="permalink"><a href="#a2c7860c271e59ac06e92266e73de7723">&#9670;&#160;</a></span>Semaphore()</h2>
  113. <div class="memitem">
  114. <div class="memproto">
  115. <table class="memname">
  116. <tr>
  117. <td class="memname"><a class="el" href="class_semaphore.html">Semaphore</a> </td>
  118. <td>(</td>
  119. <td class="paramtype">S32&#160;</td>
  120. <td class="paramname"><em>initialCount</em> = <code>1</code></td><td>)</td>
  121. <td></td>
  122. </tr>
  123. </table>
  124. </div><div class="memdoc">
  125. <p>Create a semaphore. initialCount defaults to 1. </p>
  126. </div>
  127. </div>
  128. <a id="a5e0394d4ca6109ccb52b3c1e5cf6c9b5" name="a5e0394d4ca6109ccb52b3c1e5cf6c9b5"></a>
  129. <h2 class="memtitle"><span class="permalink"><a href="#a5e0394d4ca6109ccb52b3c1e5cf6c9b5">&#9670;&#160;</a></span>~Semaphore()</h2>
  130. <div class="memitem">
  131. <div class="memproto">
  132. <table class="memname">
  133. <tr>
  134. <td class="memname">~<a class="el" href="class_semaphore.html">Semaphore</a> </td>
  135. <td>(</td>
  136. <td class="paramname"></td><td>)</td>
  137. <td></td>
  138. </tr>
  139. </table>
  140. </div><div class="memdoc">
  141. <p>Delete a semaphore, ignoring it's count. </p>
  142. </div>
  143. </div>
  144. <h2 class="groupheader">Member Function Documentation</h2>
  145. <a id="af111dad5fcf43df4130392480ae1f019" name="af111dad5fcf43df4130392480ae1f019"></a>
  146. <h2 class="memtitle"><span class="permalink"><a href="#af111dad5fcf43df4130392480ae1f019">&#9670;&#160;</a></span>acquire()</h2>
  147. <div class="memitem">
  148. <div class="memproto">
  149. <table class="memname">
  150. <tr>
  151. <td class="memname">bool acquire </td>
  152. <td>(</td>
  153. <td class="paramtype">bool&#160;</td>
  154. <td class="paramname"><em>block</em> = <code>true</code>, </td>
  155. </tr>
  156. <tr>
  157. <td class="paramkey"></td>
  158. <td></td>
  159. <td class="paramtype">S32&#160;</td>
  160. <td class="paramname"><em>timeoutMS</em> = <code>-1</code>&#160;</td>
  161. </tr>
  162. <tr>
  163. <td></td>
  164. <td>)</td>
  165. <td></td><td></td>
  166. </tr>
  167. </table>
  168. </div><div class="memdoc">
  169. <p>Acquire the semaphore, decrementing its count. if the initial count is less than 1, block until it goes above 1, then acquire. Returns true if the semaphore was acquired, false if the semaphore could not be acquired and block was false. </p>
  170. </div>
  171. </div>
  172. <a id="ad7ccee8819b0b669c103916140ebd5b1" name="ad7ccee8819b0b669c103916140ebd5b1"></a>
  173. <h2 class="memtitle"><span class="permalink"><a href="#ad7ccee8819b0b669c103916140ebd5b1">&#9670;&#160;</a></span>acquireSemaphore()</h2>
  174. <div class="memitem">
  175. <div class="memproto">
  176. <table class="mlabels">
  177. <tr>
  178. <td class="mlabels-left">
  179. <table class="memname">
  180. <tr>
  181. <td class="memname">static bool acquireSemaphore </td>
  182. <td>(</td>
  183. <td class="paramtype">void *&#160;</td>
  184. <td class="paramname"><em>semaphore</em>, </td>
  185. </tr>
  186. <tr>
  187. <td class="paramkey"></td>
  188. <td></td>
  189. <td class="paramtype">bool&#160;</td>
  190. <td class="paramname"><em>block</em> = <code>true</code>&#160;</td>
  191. </tr>
  192. <tr>
  193. <td></td>
  194. <td>)</td>
  195. <td></td><td></td>
  196. </tr>
  197. </table>
  198. </td>
  199. <td class="mlabels-right">
  200. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  201. </tr>
  202. </table>
  203. </div><div class="memdoc">
  204. </div>
  205. </div>
  206. <a id="a7a20254adb02a7b006dc64556ad23194" name="a7a20254adb02a7b006dc64556ad23194"></a>
  207. <h2 class="memtitle"><span class="permalink"><a href="#a7a20254adb02a7b006dc64556ad23194">&#9670;&#160;</a></span>createSemaphore()</h2>
  208. <div class="memitem">
  209. <div class="memproto">
  210. <table class="mlabels">
  211. <tr>
  212. <td class="mlabels-left">
  213. <table class="memname">
  214. <tr>
  215. <td class="memname">static void * createSemaphore </td>
  216. <td>(</td>
  217. <td class="paramtype">U32&#160;</td>
  218. <td class="paramname"><em>initialCount</em> = <code>1</code></td><td>)</td>
  219. <td></td>
  220. </tr>
  221. </table>
  222. </td>
  223. <td class="mlabels-right">
  224. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  225. </tr>
  226. </table>
  227. </div><div class="memdoc">
  228. </div>
  229. </div>
  230. <a id="ab7bcf2c87c474f3d9b51e57d853a3ed1" name="ab7bcf2c87c474f3d9b51e57d853a3ed1"></a>
  231. <h2 class="memtitle"><span class="permalink"><a href="#ab7bcf2c87c474f3d9b51e57d853a3ed1">&#9670;&#160;</a></span>destroySemaphore()</h2>
  232. <div class="memitem">
  233. <div class="memproto">
  234. <table class="mlabels">
  235. <tr>
  236. <td class="mlabels-left">
  237. <table class="memname">
  238. <tr>
  239. <td class="memname">static void destroySemaphore </td>
  240. <td>(</td>
  241. <td class="paramtype">void *&#160;</td>
  242. <td class="paramname"><em>semaphore</em></td><td>)</td>
  243. <td></td>
  244. </tr>
  245. </table>
  246. </td>
  247. <td class="mlabels-right">
  248. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  249. </tr>
  250. </table>
  251. </div><div class="memdoc">
  252. </div>
  253. </div>
  254. <a id="a23b477d0e2d399f75d585d154c346591" name="a23b477d0e2d399f75d585d154c346591"></a>
  255. <h2 class="memtitle"><span class="permalink"><a href="#a23b477d0e2d399f75d585d154c346591">&#9670;&#160;</a></span>release()</h2>
  256. <div class="memitem">
  257. <div class="memproto">
  258. <table class="memname">
  259. <tr>
  260. <td class="memname">void release </td>
  261. <td>(</td>
  262. <td class="paramname"></td><td>)</td>
  263. <td></td>
  264. </tr>
  265. </table>
  266. </div><div class="memdoc">
  267. <p>Release the semaphore, incrementing its count. Never blocks. </p>
  268. </div>
  269. </div>
  270. <a id="a23ae790a1b84fb624f04fd2ad97618fb" name="a23ae790a1b84fb624f04fd2ad97618fb"></a>
  271. <h2 class="memtitle"><span class="permalink"><a href="#a23ae790a1b84fb624f04fd2ad97618fb">&#9670;&#160;</a></span>releaseSemaphore()</h2>
  272. <div class="memitem">
  273. <div class="memproto">
  274. <table class="mlabels">
  275. <tr>
  276. <td class="mlabels-left">
  277. <table class="memname">
  278. <tr>
  279. <td class="memname">static void releaseSemaphore </td>
  280. <td>(</td>
  281. <td class="paramtype">void *&#160;</td>
  282. <td class="paramname"><em>semaphore</em></td><td>)</td>
  283. <td></td>
  284. </tr>
  285. </table>
  286. </td>
  287. <td class="mlabels-right">
  288. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  289. </tr>
  290. </table>
  291. </div><div class="memdoc">
  292. </div>
  293. </div>
  294. <h2 class="groupheader">Member Data Documentation</h2>
  295. <a id="ab336c1d69355cd5546fe5db425fac01b" name="ab336c1d69355cd5546fe5db425fac01b"></a>
  296. <h2 class="memtitle"><span class="permalink"><a href="#ab336c1d69355cd5546fe5db425fac01b">&#9670;&#160;</a></span>mData</h2>
  297. <div class="memitem">
  298. <div class="memproto">
  299. <table class="mlabels">
  300. <tr>
  301. <td class="mlabels-left">
  302. <table class="memname">
  303. <tr>
  304. <td class="memname"><a class="el" href="struct_platform_semaphore.html">PlatformSemaphore</a>* mData</td>
  305. </tr>
  306. </table>
  307. </td>
  308. <td class="mlabels-right">
  309. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  310. </tr>
  311. </table>
  312. </div><div class="memdoc">
  313. </div>
  314. </div>
  315. <hr/>The documentation for this class was generated from the following files:<ul>
  316. <li>platform/threads/<b>semaphore.h</b></li>
  317. <li>platformAndroid/<b>AndroidSemaphore.cpp</b></li>
  318. <li>platformEmscripten/<b>EmscriptenSemaphore.cpp</b></li>
  319. </ul>
  320. </div><!-- contents -->
  321. <!-- start footer part -->
  322. <hr class="footer"/><address class="footer"><small>
  323. Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
  324. </small></address>
  325. </body>
  326. </html>