Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 184

ucommon-doc-5.0.4-1mdv2010.2.i586.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"/>
<title>ucommon: ucommon::Mutex Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00086.html">Mutex</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::Mutex Class Reference</h1><!-- doxytag: class="ucommon::Mutex" --><!-- doxytag: inherits="ucommon::ExclusiveProtocol" -->
<p>Generic non-recursive exclusive lock class.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00202_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ucommon::Mutex:</div>
<div class="dynsection">
<div class="center"><img src="a00444.png" border="0" usemap="#ucommon_1_1_mutex_inherit__map" alt="Inheritance graph"/></div>
<map name="ucommon_1_1_mutex_inherit__map" id="ucommon_1_1_mutex_inherit__map">
<area shape="rect" id="node2" href="a00049.html" title="An exclusive locking protocol interface base." alt="" coords="5,5,288,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ucommon::Mutex:</div>
<div class="dynsection">
<div class="center"><img src="a00445.png" border="0" usemap="#ucommon_1_1_mutex_coll__map" alt="Collaboration graph"/></div>
<map name="ucommon_1_1_mutex_coll__map" id="ucommon_1_1_mutex_coll__map">
<area shape="rect" id="node2" href="a00049.html" title="An exclusive locking protocol interface base." alt="" coords="5,5,288,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">gaurd</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gaurd class to apply scope based mutex locking to objects.  <a href="a00087.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#ab37230b043ba152aa16cf6ede193cbea">acquire</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Acquire mutex lock.  <a href="#ab37230b043ba152aa16cf6ede193cbea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#adac15f4646a7dc0bef489f9179771d0f">lock</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Acquire mutex lock.  <a href="#adac15f4646a7dc0bef489f9179771d0f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c2e24f65fcfa1910ceecaad930aa6f3"></a><!-- doxytag: member="ucommon::Mutex::Mutex" ref="a5c2e24f65fcfa1910ceecaad930aa6f3" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a5c2e24f65fcfa1910ceecaad930aa6f3">Mutex</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mutex lock. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8e309c56ee0ff9f2d463b82c2e20030"></a><!-- doxytag: member="ucommon::Mutex::release" ref="aa8e309c56ee0ff9f2d463b82c2e20030" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#aa8e309c56ee0ff9f2d463b82c2e20030">release</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release acquired lock. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade2d4978d76ef5bbe2ecef272a3ce20e"></a><!-- doxytag: member="ucommon::Mutex::unlock" ref="ade2d4978d76ef5bbe2ecef272a3ce20e" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#ade2d4978d76ef5bbe2ecef272a3ce20e">unlock</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release acquired lock. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af509db878b66f95fe296b8f50d8a0dd1"></a><!-- doxytag: member="ucommon::Mutex::~Mutex" ref="af509db878b66f95fe296b8f50d8a0dd1" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#af509db878b66f95fe296b8f50d8a0dd1">~Mutex</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy mutex lock, release waiting threads. <br/></td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a61c2c7106f20b90c457c542f027c8d2c">acquire</a> (pthread_mutex_t *lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to acquire os native mutex lock directly.  <a href="#a61c2c7106f20b90c457c542f027c8d2c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a2b428e753f401cd056f976fa5deb845e">acquire</a> (<a class="el" href="a00086.html">Mutex</a> &amp;lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to acquire a mutex lock.  <a href="#a2b428e753f401cd056f976fa5deb845e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a3fd0d83316e6830130df0f86ae6fe4e3">indexing</a> (unsigned size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify hash table size for gaurd protection.  <a href="#a3fd0d83316e6830130df0f86ae6fe4e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#adafb6867e79d5d807ee17d9998d17e3b">lock</a> (pthread_mutex_t *lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to acquire os native mutex lock directly.  <a href="#adafb6867e79d5d807ee17d9998d17e3b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a2811a152b6c7dd87b2d8fd2cff4d3a04">lock</a> (<a class="el" href="a00086.html">Mutex</a> &amp;lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to acquire a mutex lock.  <a href="#a2811a152b6c7dd87b2d8fd2cff4d3a04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a61c9784d2ffea8467f8cae99850a90f3">protect</a> (void *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify pointer/object/resource to gaurd protect.  <a href="#a61c9784d2ffea8467f8cae99850a90f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#af5f0012be273dabbd2bcd5943c229bb8">release</a> (void *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify a pointer/object/resource to release.  <a href="#af5f0012be273dabbd2bcd5943c229bb8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a23db5f7b655e104fd5258a78c777da62">release</a> (pthread_mutex_t *lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to release os native mutex lock directly.  <a href="#a23db5f7b655e104fd5258a78c777da62"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#ab41d6aa91367b09cfebdecbc22f4eccd">release</a> (<a class="el" href="a00086.html">Mutex</a> &amp;lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to release an aquired mutex lock.  <a href="#ab41d6aa91367b09cfebdecbc22f4eccd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#ae82390643ddd6199e85b01e6f12aa55d">unlock</a> (pthread_mutex_t *lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to release os native mutex lock directly.  <a href="#ae82390643ddd6199e85b01e6f12aa55d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#ae950c5f55dbe606e84f63d1f61cd71ee">unlock</a> (<a class="el" href="a00086.html">Mutex</a> &amp;lock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to release an aquired mutex lock.  <a href="#ae950c5f55dbe606e84f63d1f61cd71ee"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30be7564653ed438df74e32daf9c1df5"></a><!-- doxytag: member="ucommon::Mutex::Exlock" ref="a30be7564653ed438df74e32daf9c1df5" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a30be7564653ed438df74e32daf9c1df5">Exlock</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Protocol interface to exclusive lock the object. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a1745a3e58a200f8a0c584bcf41ba1d"></a><!-- doxytag: member="ucommon::Mutex::Unlock" ref="a5a1745a3e58a200f8a0c584bcf41ba1d" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#a5a1745a3e58a200f8a0c584bcf41ba1d">Unlock</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Protocol interface to release a lock. <br/></td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8d2f18e3666654f082ba5a2fc69b06a3"></a><!-- doxytag: member="ucommon::Mutex::mlock" ref="a8d2f18e3666654f082ba5a2fc69b06a3" args="" -->
pthread_mutex_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>mlock</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Generic non-recursive exclusive lock class. </p>
<p>This class also impliments the <a class="el" href="a00048.html" title="A kind of smart pointer object to support exclusive locking protocol.">exclusive_lock</a> protocol. In addition, an interface is offered to support dynamically managed mutexes which are internally pooled. These can be used to protect and serialize arbitrary access to memory and objects on demand. This offers an advantage over embedding mutexes to serialize access to individual objects since the maximum number of mutexes will never be greater than the number of actually running threads rather than the number of objects being potentially protected. The ability to hash the pointer address into an indexed table further optimizes access by reducing the chance for collisions on the primary index mutex. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01124">1124</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a61c2c7106f20b90c457c542f027c8d2c"></a><!-- doxytag: member="ucommon::Mutex::acquire" ref="a61c2c7106f20b90c457c542f027c8d2c" args="(pthread_mutex_t *lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::acquire </td>
          <td>(</td>
          <td class="paramtype">pthread_mutex_t *&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to acquire os native mutex lock directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to acquire. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01251">1251</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2b428e753f401cd056f976fa5deb845e"></a><!-- doxytag: member="ucommon::Mutex::acquire" ref="a2b428e753f401cd056f976fa5deb845e" args="(Mutex &amp;lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::acquire </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">Mutex</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to acquire a mutex lock. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to acquire. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01223">1223</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab37230b043ba152aa16cf6ede193cbea"></a><!-- doxytag: member="ucommon::Mutex::acquire" ref="ab37230b043ba152aa16cf6ede193cbea" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Mutex::acquire </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Acquire mutex lock. </p>
<p>This is a blocking operation. </p>

<p>Definition at line <a class="el" href="a00202_source.html#l01198">1198</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3fd0d83316e6830130df0f86ae6fe4e3"></a><!-- doxytag: member="ucommon::Mutex::indexing" ref="a3fd0d83316e6830130df0f86ae6fe4e3" args="(unsigned size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::indexing </td>
          <td>(</td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specify hash table size for gaurd protection. </p>
<p>The default is 1. This should be called at initialization time from the main thread of the application before any other threads are created. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of hash table used for gaurding. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adafb6867e79d5d807ee17d9998d17e3b"></a><!-- doxytag: member="ucommon::Mutex::lock" ref="adafb6867e79d5d807ee17d9998d17e3b" args="(pthread_mutex_t *lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::lock </td>
          <td>(</td>
          <td class="paramtype">pthread_mutex_t *&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to acquire os native mutex lock directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to acquire. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01258">1258</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2811a152b6c7dd87b2d8fd2cff4d3a04"></a><!-- doxytag: member="ucommon::Mutex::lock" ref="a2811a152b6c7dd87b2d8fd2cff4d3a04" args="(Mutex &amp;lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::lock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">Mutex</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to acquire a mutex lock. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to acquire. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01230">1230</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="adac15f4646a7dc0bef489f9179771d0f"></a><!-- doxytag: member="ucommon::Mutex::lock" ref="adac15f4646a7dc0bef489f9179771d0f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Mutex::lock </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Acquire mutex lock. </p>
<p>This is a blocking operation. </p>

<p>Definition at line <a class="el" href="a00202_source.html#l01204">1204</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="a61c9784d2ffea8467f8cae99850a90f3"></a><!-- doxytag: member="ucommon::Mutex::protect" ref="a61c9784d2ffea8467f8cae99850a90f3" args="(void *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::protect </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specify pointer/object/resource to gaurd protect. </p>
<p>This uses a dynamically managed mutex. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to protect. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af5f0012be273dabbd2bcd5943c229bb8"></a><!-- doxytag: member="ucommon::Mutex::release" ref="af5f0012be273dabbd2bcd5943c229bb8" args="(void *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::release </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specify a pointer/object/resource to release. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to release. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a23db5f7b655e104fd5258a78c777da62"></a><!-- doxytag: member="ucommon::Mutex::release" ref="a23db5f7b655e104fd5258a78c777da62" args="(pthread_mutex_t *lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::release </td>
          <td>(</td>
          <td class="paramtype">pthread_mutex_t *&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to release os native mutex lock directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to release. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01272">1272</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab41d6aa91367b09cfebdecbc22f4eccd"></a><!-- doxytag: member="ucommon::Mutex::release" ref="ab41d6aa91367b09cfebdecbc22f4eccd" args="(Mutex &amp;lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::release </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">Mutex</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to release an aquired mutex lock. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to acquire. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01244">1244</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae82390643ddd6199e85b01e6f12aa55d"></a><!-- doxytag: member="ucommon::Mutex::unlock" ref="ae82390643ddd6199e85b01e6f12aa55d" args="(pthread_mutex_t *lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::unlock </td>
          <td>(</td>
          <td class="paramtype">pthread_mutex_t *&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to release os native mutex lock directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to release. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01265">1265</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae950c5f55dbe606e84f63d1f61cd71ee"></a><!-- doxytag: member="ucommon::Mutex::unlock" ref="ae950c5f55dbe606e84f63d1f61cd71ee" args="(Mutex &amp;lock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Mutex::unlock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">Mutex</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lock</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to release an aquired mutex lock. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>to acquire. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l01237">1237</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00202_source.html">thread.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:39:46 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>