Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 7281b619e6b612f5388cfad6b0e56530 > files > 63

sdl2-docs-2.0.3-4.mga5.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.8"/>
<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/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</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 style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></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;(~(<a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>)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 class="anchor" 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> (<a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>)</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 class="anchor" id="a0908c6a7356331d197059fbdc6c66a0f"></a>
DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="afee1549c7723ebe13fbfca8ad94f8c9d"></a>
DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> 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 class="anchor" 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> (<a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> 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 <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> SDLCALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SDL__mutex_8h.html#a4ea1acfaf722895626174e1e37c497da">SDL_SemWaitTimeout</a> (SDL_sem *sem, <a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> 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 class="anchor" 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> (<a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>)</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 <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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, <a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> 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 class="anchor" id="abd2bc8605242c50341362ada961dc914"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SDL_MUTEX_MAXWAIT&#160;&#160;&#160;(~(<a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>)0)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is the timeout value which corresponds to never time out. </p>

</div>
</div>
<a class="anchor" id="a1214610634c24465d7c50149752791a9"></a>
<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 class="anchor" id="a3ce486805b5c21574466d3d93c908597"></a>
<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 class="anchor" id="aa25335079da2e776536c63e84288d684"></a>
<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 class="anchor" id="a2ffd0b45ebdc44057007a59857ba46b3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="a1037a8274b0b13118fc78eeb417a1397"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="af759b2fe1c5507f47854c1edf1ecbabd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="aa57013f95a9c608cf24a5100b841e863"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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"><a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>&#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 class="anchor" id="ac729fb4dbfe4057452ebfc1087f61585"></a>
<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"><a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>&#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 class="anchor" id="ae1f90ad6a7420fb3c4b5685e440d762f"></a>
<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"><a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a>&#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 class="anchor" id="ab8c1a20a5466281a5d63a0cabe07e140"></a>
<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"><a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>&#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 class="anchor" id="a8843feeb270845e07fc23f692707540f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> 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 class="anchor" id="ad2bbcc4e32ac927af62f0cba671f63fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> 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 class="anchor" id="a23deb3b7e29a5137d804e4be3453a768"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__audio_8h.html#a52835ae37c4bb905b903cbaf5d04b05f">void</a> 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 class="anchor" id="a0c50f774babf7a44c381238a1f780595"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="a517288aaa856ce2264e8420636e85c4a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="ae66390dca585fdab8de871fe32935768"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a> 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 class="anchor" id="af51d75d18cb90f28b35c31e853b04792"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 class="anchor" id="a4ea1acfaf722895626174e1e37c497da"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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"><a class="el" href="SDL__stdinc_8h.html#add440eff171ea5f55cb00c4a9ab8672d">Uint32</a>&#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 class="anchor" id="a5097fb4c7147d14a4c6df4515ec862e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DECLSPEC <a class="el" href="SDL__thread_8h.html#a6a64f9be4433e4de6e2f2f548cf3c08e">int</a> 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 on Thu Oct 16 2014 16:33:09 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>