Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > bf9e3bc1aec7873c087fb2ccd927873f > files > 65

sdl2-docs-2.0.10-1.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>My Project: SDL_mutex.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">SDL_mutex.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="SDL__stdinc_8h_source.html">SDL_stdinc.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="SDL__error_8h_source.html">SDL_error.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="begin__code_8h_source.html">begin_code.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="close__code_8h_source.html">close_code.h</a>&quot;</code><br />
</div>
<p><a href="SDL__mutex_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a1214610634c24465d7c50149752791a9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a1214610634c24465d7c50149752791a9">SDL_MUTEX_TIMEDOUT</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a1214610634c24465d7c50149752791a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd2bc8605242c50341362ada961dc914"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#abd2bc8605242c50341362ada961dc914">SDL_MUTEX_MAXWAIT</a>&#160;&#160;&#160;(~(Uint32)0)</td></tr>
<tr class="separator:abd2bc8605242c50341362ada961dc914"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Mutex functions</h2></td></tr>
<tr class="memitem:a3ce486805b5c21574466d3d93c908597"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a3ce486805b5c21574466d3d93c908597">SDL_mutexP</a>(m)&#160;&#160;&#160;SDL_LockMutex(m)</td></tr>
<tr class="separator:a3ce486805b5c21574466d3d93c908597"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa25335079da2e776536c63e84288d684"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#aa25335079da2e776536c63e84288d684">SDL_mutexV</a>(m)&#160;&#160;&#160;SDL_UnlockMutex(m)</td></tr>
<tr class="separator:aa25335079da2e776536c63e84288d684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac085162a7cfb9ebd63e2d05d33c03c17"><td class="memItemLeft" align="right" valign="top"><a id="ac085162a7cfb9ebd63e2d05d33c03c17"></a>
typedef struct SDL_mutex&#160;</td><td class="memItemRight" valign="bottom"><b>SDL_mutex</b></td></tr>
<tr class="separator:ac085162a7cfb9ebd63e2d05d33c03c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1f90ad6a7420fb3c4b5685e440d762f"><td class="memItemLeft" align="right" valign="top">DECLSPEC SDL_mutex *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#ae1f90ad6a7420fb3c4b5685e440d762f">SDL_CreateMutex</a> (void)</td></tr>
<tr class="separator:ae1f90ad6a7420fb3c4b5685e440d762f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0908c6a7356331d197059fbdc6c66a0f"><td class="memItemLeft" align="right" valign="top"><a id="a0908c6a7356331d197059fbdc6c66a0f"></a>
DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><b>SDL_LockMutex</b> (SDL_mutex *mutex)</td></tr>
<tr class="separator:a0908c6a7356331d197059fbdc6c66a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5097fb4c7147d14a4c6df4515ec862e8"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a5097fb4c7147d14a4c6df4515ec862e8">SDL_TryLockMutex</a> (SDL_mutex *mutex)</td></tr>
<tr class="separator:a5097fb4c7147d14a4c6df4515ec862e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afee1549c7723ebe13fbfca8ad94f8c9d"><td class="memItemLeft" align="right" valign="top"><a id="afee1549c7723ebe13fbfca8ad94f8c9d"></a>
DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><b>SDL_UnlockMutex</b> (SDL_mutex *mutex)</td></tr>
<tr class="separator:afee1549c7723ebe13fbfca8ad94f8c9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2bbcc4e32ac927af62f0cba671f63fe"><td class="memItemLeft" align="right" valign="top">DECLSPEC void SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#ad2bbcc4e32ac927af62f0cba671f63fe">SDL_DestroyMutex</a> (SDL_mutex *mutex)</td></tr>
<tr class="separator:ad2bbcc4e32ac927af62f0cba671f63fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Semaphore functions</h2></td></tr>
<tr class="memitem:aa7d56df841e98eed229d1d4b17327d29"><td class="memItemLeft" align="right" valign="top"><a id="aa7d56df841e98eed229d1d4b17327d29"></a>
typedef struct SDL_semaphore&#160;</td><td class="memItemRight" valign="bottom"><b>SDL_sem</b></td></tr>
<tr class="separator:aa7d56df841e98eed229d1d4b17327d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8c1a20a5466281a5d63a0cabe07e140"><td class="memItemLeft" align="right" valign="top">DECLSPEC SDL_sem *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#ab8c1a20a5466281a5d63a0cabe07e140">SDL_CreateSemaphore</a> (Uint32 initial_value)</td></tr>
<tr class="separator:ab8c1a20a5466281a5d63a0cabe07e140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23deb3b7e29a5137d804e4be3453a768"><td class="memItemLeft" align="right" valign="top">DECLSPEC void SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a23deb3b7e29a5137d804e4be3453a768">SDL_DestroySemaphore</a> (SDL_sem *sem)</td></tr>
<tr class="separator:a23deb3b7e29a5137d804e4be3453a768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af51d75d18cb90f28b35c31e853b04792"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#af51d75d18cb90f28b35c31e853b04792">SDL_SemWait</a> (SDL_sem *sem)</td></tr>
<tr class="separator:af51d75d18cb90f28b35c31e853b04792"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a517288aaa856ce2264e8420636e85c4a"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a517288aaa856ce2264e8420636e85c4a">SDL_SemTryWait</a> (SDL_sem *sem)</td></tr>
<tr class="separator:a517288aaa856ce2264e8420636e85c4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ea1acfaf722895626174e1e37c497da"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a4ea1acfaf722895626174e1e37c497da">SDL_SemWaitTimeout</a> (SDL_sem *sem, Uint32 ms)</td></tr>
<tr class="separator:a4ea1acfaf722895626174e1e37c497da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c50f774babf7a44c381238a1f780595"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a0c50f774babf7a44c381238a1f780595">SDL_SemPost</a> (SDL_sem *sem)</td></tr>
<tr class="separator:a0c50f774babf7a44c381238a1f780595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66390dca585fdab8de871fe32935768"><td class="memItemLeft" align="right" valign="top">DECLSPEC Uint32 SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#ae66390dca585fdab8de871fe32935768">SDL_SemValue</a> (SDL_sem *sem)</td></tr>
<tr class="separator:ae66390dca585fdab8de871fe32935768"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Condition variable functions</h2></td></tr>
<tr class="memitem:ac50401d1b84d806a0c927c8cf454f96a"><td class="memItemLeft" align="right" valign="top"><a id="ac50401d1b84d806a0c927c8cf454f96a"></a>
typedef struct SDL_cond&#160;</td><td class="memItemRight" valign="bottom"><b>SDL_cond</b></td></tr>
<tr class="separator:ac50401d1b84d806a0c927c8cf454f96a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac729fb4dbfe4057452ebfc1087f61585"><td class="memItemLeft" align="right" valign="top">DECLSPEC SDL_cond *SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#ac729fb4dbfe4057452ebfc1087f61585">SDL_CreateCond</a> (void)</td></tr>
<tr class="separator:ac729fb4dbfe4057452ebfc1087f61585"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8843feeb270845e07fc23f692707540f"><td class="memItemLeft" align="right" valign="top">DECLSPEC void SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a8843feeb270845e07fc23f692707540f">SDL_DestroyCond</a> (SDL_cond *cond)</td></tr>
<tr class="separator:a8843feeb270845e07fc23f692707540f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1037a8274b0b13118fc78eeb417a1397"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a1037a8274b0b13118fc78eeb417a1397">SDL_CondSignal</a> (SDL_cond *cond)</td></tr>
<tr class="separator:a1037a8274b0b13118fc78eeb417a1397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ffd0b45ebdc44057007a59857ba46b3"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a2ffd0b45ebdc44057007a59857ba46b3">SDL_CondBroadcast</a> (SDL_cond *cond)</td></tr>
<tr class="separator:a2ffd0b45ebdc44057007a59857ba46b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af759b2fe1c5507f47854c1edf1ecbabd"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#af759b2fe1c5507f47854c1edf1ecbabd">SDL_CondWait</a> (SDL_cond *cond, SDL_mutex *mutex)</td></tr>
<tr class="separator:af759b2fe1c5507f47854c1edf1ecbabd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa57013f95a9c608cf24a5100b841e863"><td class="memItemLeft" align="right" valign="top">DECLSPEC int SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#aa57013f95a9c608cf24a5100b841e863">SDL_CondWaitTimeout</a> (SDL_cond *cond, SDL_mutex *mutex, Uint32 ms)</td></tr>
<tr class="separator:aa57013f95a9c608cf24a5100b841e863"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions to provide thread synchronization primitives. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="abd2bc8605242c50341362ada961dc914"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd2bc8605242c50341362ada961dc914">&#9670;&nbsp;</a></span>SDL_MUTEX_MAXWAIT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_MUTEX_MAXWAIT&#160;&#160;&#160;(~(Uint32)0)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is the timeout value which corresponds to never time out. </p>

</div>
</div>
<a id="a1214610634c24465d7c50149752791a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1214610634c24465d7c50149752791a9">&#9670;&nbsp;</a></span>SDL_MUTEX_TIMEDOUT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_MUTEX_TIMEDOUT&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Synchronization functions which can time out return this value if they time out. </p>

</div>
</div>
<a id="a3ce486805b5c21574466d3d93c908597"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ce486805b5c21574466d3d93c908597">&#9670;&nbsp;</a></span>SDL_mutexP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_mutexP</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">m</td><td>)</td>
          <td>&#160;&#160;&#160;SDL_LockMutex(m)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Lock the mutex.</p>
<dl class="section return"><dt>Returns</dt><dd>0, or -1 on error. </dd></dl>

</div>
</div>
<a id="aa25335079da2e776536c63e84288d684"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa25335079da2e776536c63e84288d684">&#9670;&nbsp;</a></span>SDL_mutexV</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_mutexV</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">m</td><td>)</td>
          <td>&#160;&#160;&#160;SDL_UnlockMutex(m)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Unlock the mutex.</p>
<dl class="section return"><dt>Returns</dt><dd>0, or -1 on error.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>It is an error to unlock a mutex that has not been locked by the current thread, and doing so results in undefined behavior. </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a2ffd0b45ebdc44057007a59857ba46b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ffd0b45ebdc44057007a59857ba46b3">&#9670;&nbsp;</a></span>SDL_CondBroadcast()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_CondBroadcast </td>
          <td>(</td>
          <td class="paramtype">SDL_cond *&#160;</td>
          <td class="paramname"><em>cond</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Restart all threads that are waiting on the condition variable.</p>
<dl class="section return"><dt>Returns</dt><dd>0 or -1 on error. </dd></dl>

</div>
</div>
<a id="a1037a8274b0b13118fc78eeb417a1397"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1037a8274b0b13118fc78eeb417a1397">&#9670;&nbsp;</a></span>SDL_CondSignal()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_CondSignal </td>
          <td>(</td>
          <td class="paramtype">SDL_cond *&#160;</td>
          <td class="paramname"><em>cond</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Restart one of the threads that are waiting on the condition variable.</p>
<dl class="section return"><dt>Returns</dt><dd>0 or -1 on error. </dd></dl>

</div>
</div>
<a id="af759b2fe1c5507f47854c1edf1ecbabd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af759b2fe1c5507f47854c1edf1ecbabd">&#9670;&nbsp;</a></span>SDL_CondWait()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_CondWait </td>
          <td>(</td>
          <td class="paramtype">SDL_cond *&#160;</td>
          <td class="paramname"><em>cond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SDL_mutex *&#160;</td>
          <td class="paramname"><em>mutex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Wait on the condition variable, unlocking the provided mutex.</p>
<dl class="section warning"><dt>Warning</dt><dd>The mutex must be locked before entering this function!</dd></dl>
<p>The mutex is re-locked once the condition variable is signaled.</p>
<dl class="section return"><dt>Returns</dt><dd>0 when it is signaled, or -1 on error. </dd></dl>

</div>
</div>
<a id="aa57013f95a9c608cf24a5100b841e863"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa57013f95a9c608cf24a5100b841e863">&#9670;&nbsp;</a></span>SDL_CondWaitTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_CondWaitTimeout </td>
          <td>(</td>
          <td class="paramtype">SDL_cond *&#160;</td>
          <td class="paramname"><em>cond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SDL_mutex *&#160;</td>
          <td class="paramname"><em>mutex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&#160;</td>
          <td class="paramname"><em>ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Waits for at most <code>ms</code> milliseconds, and returns 0 if the condition variable is signaled, <a class="el" href="SDL__mutex_8h.html#a1214610634c24465d7c50149752791a9">SDL_MUTEX_TIMEDOUT</a> if the condition is not signaled in the allotted time, and -1 on error.</p>
<dl class="section warning"><dt>Warning</dt><dd>On some platforms this function is implemented by looping with a delay of 1 ms, and so should be avoided if possible. </dd></dl>

</div>
</div>
<a id="ac729fb4dbfe4057452ebfc1087f61585"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac729fb4dbfe4057452ebfc1087f61585">&#9670;&nbsp;</a></span>SDL_CreateCond()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC SDL_cond* SDLCALL SDL_CreateCond </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a condition variable.</p>
<p>Typical use of condition variables:</p>
<p>Thread A: SDL_LockMutex(lock); while ( ! condition ) { SDL_CondWait(cond, lock); } SDL_UnlockMutex(lock);</p>
<p>Thread B: SDL_LockMutex(lock); ... condition = true; ... SDL_CondSignal(cond); SDL_UnlockMutex(lock);</p>
<p>There is some discussion whether to signal the condition variable with the mutex locked or not. There is some potential performance benefit to unlocking first on some platforms, but there are some potential race conditions depending on how your code is structured.</p>
<p>In general it's safer to signal the condition variable while the mutex is locked. </p>

</div>
</div>
<a id="ae1f90ad6a7420fb3c4b5685e440d762f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1f90ad6a7420fb3c4b5685e440d762f">&#9670;&nbsp;</a></span>SDL_CreateMutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC SDL_mutex* SDLCALL SDL_CreateMutex </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a mutex, initialized unlocked. </p>

</div>
</div>
<a id="ab8c1a20a5466281a5d63a0cabe07e140"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8c1a20a5466281a5d63a0cabe07e140">&#9670;&nbsp;</a></span>SDL_CreateSemaphore()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC SDL_sem* SDLCALL SDL_CreateSemaphore </td>
          <td>(</td>
          <td class="paramtype">Uint32&#160;</td>
          <td class="paramname"><em>initial_value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a semaphore, initialized with value, returns NULL on failure. </p>

</div>
</div>
<a id="a8843feeb270845e07fc23f692707540f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8843feeb270845e07fc23f692707540f">&#9670;&nbsp;</a></span>SDL_DestroyCond()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC void SDLCALL SDL_DestroyCond </td>
          <td>(</td>
          <td class="paramtype">SDL_cond *&#160;</td>
          <td class="paramname"><em>cond</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroy a condition variable. </p>

</div>
</div>
<a id="ad2bbcc4e32ac927af62f0cba671f63fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2bbcc4e32ac927af62f0cba671f63fe">&#9670;&nbsp;</a></span>SDL_DestroyMutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC void SDLCALL SDL_DestroyMutex </td>
          <td>(</td>
          <td class="paramtype">SDL_mutex *&#160;</td>
          <td class="paramname"><em>mutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroy a mutex. </p>

</div>
</div>
<a id="a23deb3b7e29a5137d804e4be3453a768"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23deb3b7e29a5137d804e4be3453a768">&#9670;&nbsp;</a></span>SDL_DestroySemaphore()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC void SDLCALL SDL_DestroySemaphore </td>
          <td>(</td>
          <td class="paramtype">SDL_sem *&#160;</td>
          <td class="paramname"><em>sem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroy a semaphore. </p>

</div>
</div>
<a id="a0c50f774babf7a44c381238a1f780595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c50f774babf7a44c381238a1f780595">&#9670;&nbsp;</a></span>SDL_SemPost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_SemPost </td>
          <td>(</td>
          <td class="paramtype">SDL_sem *&#160;</td>
          <td class="paramname"><em>sem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Atomically increases the semaphore's count (not blocking).</p>
<dl class="section return"><dt>Returns</dt><dd>0, or -1 on error. </dd></dl>

</div>
</div>
<a id="a517288aaa856ce2264e8420636e85c4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a517288aaa856ce2264e8420636e85c4a">&#9670;&nbsp;</a></span>SDL_SemTryWait()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_SemTryWait </td>
          <td>(</td>
          <td class="paramtype">SDL_sem *&#160;</td>
          <td class="paramname"><em>sem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Non-blocking variant of <a class="el" href="SDL__mutex_8h.html#af51d75d18cb90f28b35c31e853b04792">SDL_SemWait()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>0 if the wait succeeds, <a class="el" href="SDL__mutex_8h.html#a1214610634c24465d7c50149752791a9">SDL_MUTEX_TIMEDOUT</a> if the wait would block, and -1 on error. </dd></dl>

</div>
</div>
<a id="ae66390dca585fdab8de871fe32935768"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66390dca585fdab8de871fe32935768">&#9670;&nbsp;</a></span>SDL_SemValue()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC Uint32 SDLCALL SDL_SemValue </td>
          <td>(</td>
          <td class="paramtype">SDL_sem *&#160;</td>
          <td class="paramname"><em>sem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the current count of the semaphore. </p>

</div>
</div>
<a id="af51d75d18cb90f28b35c31e853b04792"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af51d75d18cb90f28b35c31e853b04792">&#9670;&nbsp;</a></span>SDL_SemWait()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_SemWait </td>
          <td>(</td>
          <td class="paramtype">SDL_sem *&#160;</td>
          <td class="paramname"><em>sem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function suspends the calling thread until the semaphore pointed to by <code>sem</code> has a positive count. It then atomically decreases the semaphore count. </p>

</div>
</div>
<a id="a4ea1acfaf722895626174e1e37c497da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ea1acfaf722895626174e1e37c497da">&#9670;&nbsp;</a></span>SDL_SemWaitTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_SemWaitTimeout </td>
          <td>(</td>
          <td class="paramtype">SDL_sem *&#160;</td>
          <td class="paramname"><em>sem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&#160;</td>
          <td class="paramname"><em>ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Variant of <a class="el" href="SDL__mutex_8h.html#af51d75d18cb90f28b35c31e853b04792">SDL_SemWait()</a> with a timeout in milliseconds.</p>
<dl class="section return"><dt>Returns</dt><dd>0 if the wait succeeds, <a class="el" href="SDL__mutex_8h.html#a1214610634c24465d7c50149752791a9">SDL_MUTEX_TIMEDOUT</a> if the wait does not succeed in the allotted time, and -1 on error.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>On some platforms this function is implemented by looping with a delay of 1 ms, and so should be avoided if possible. </dd></dl>

</div>
</div>
<a id="a5097fb4c7147d14a4c6df4515ec862e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5097fb4c7147d14a4c6df4515ec862e8">&#9670;&nbsp;</a></span>SDL_TryLockMutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC int SDLCALL SDL_TryLockMutex </td>
          <td>(</td>
          <td class="paramtype">SDL_mutex *&#160;</td>
          <td class="paramname"><em>mutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Try to lock the mutex</p>
<dl class="section return"><dt>Returns</dt><dd>0, SDL_MUTEX_TIMEDOUT, or -1 on error </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>