Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 64656f00434e190abe8506174ca339ed > files > 88

ucommon-doc-4.3.1-1.mga1.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: ConditionalAccess Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ucommon</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;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 id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00035.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<h1>ConditionalAccess Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="ConditionalAccess" --><!-- doxytag: inherits="Conditional" -->
<p>The conditional rw seperates scheduling for optizming behavior or rw locks.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00200_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ConditionalAccess:</div>
<div class="dyncontent">
<div class="center"><img src="a00294.png" border="0" usemap="#_conditional_access_inherit__map" alt="Inheritance graph"/></div>
<map name="_conditional_access_inherit__map" id="_conditional_access_inherit__map">
<area shape="rect" id="node5" href="a00036.html" title="An optimized and convertable shared lock." alt="" coords="5,155,176,181"/><area shape="rect" id="node7" href="a00115.html" title="A generic and portable implimentation of Read/Write locking." alt="" coords="200,155,283,181"/><area shape="rect" id="node9" href="a00129.html" title="The shared pointer is used to manage a singleton instance of shared object." alt="" coords="307,155,459,181"/><area shape="rect" id="node2" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes." alt="" coords="176,5,307,32"/><area shape="rect" id="node11" href="a00126.html" title="Templated shared pointer for singleton shared objects of specific type." alt="" coords="277,229,488,256"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ConditionalAccess:</div>
<div class="dyncontent">
<div class="center"><img src="a00295.png" border="0" usemap="#_conditional_access_coll__map" alt="Collaboration graph"/></div>
<map name="_conditional_access_coll__map" id="_conditional_access_coll__map">
<area shape="rect" id="node2" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes." alt="" coords="36,5,167,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acaa6653b643ee9afb5a106690c5efe3e"></a><!-- doxytag: member="ConditionalAccess::access" ref="acaa6653b643ee9afb5a106690c5efe3e" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#acaa6653b643ee9afb5a106690c5efe3e">access</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access mode shared thread scheduling. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a926c3327686f18ee701775c606eae79d"></a><!-- doxytag: member="ConditionalAccess::commit" ref="a926c3327686f18ee701775c606eae79d" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a926c3327686f18ee701775c606eae79d">commit</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Complete exclusive mode write scheduling. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e78e7d82e5bf84a12292e4029995e9f"></a><!-- doxytag: member="ConditionalAccess::ConditionalAccess" ref="a4e78e7d82e5bf84a12292e4029995e9f" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a4e78e7d82e5bf84a12292e4029995e9f">ConditionalAccess</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize and construct conditional. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a1560077c2575b6d3d981b1c1efd191c5">limit_sharing</a> (unsigned max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Specify a maximum sharing (access) limit.  <a href="#a1560077c2575b6d3d981b1c1efd191c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f3c9b6430890905b2ed7afa6aac5be7"></a><!-- doxytag: member="ConditionalAccess::modify" ref="a1f3c9b6430890905b2ed7afa6aac5be7" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a1f3c9b6430890905b2ed7afa6aac5be7">modify</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00046.html" title="An exclusive locking protocol interface base.">Exclusive</a> mode write thread scheduling. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad78d46dc0992b34b27c13cf18b32b8b3"></a><!-- doxytag: member="ConditionalAccess::release" ref="ad78d46dc0992b34b27c13cf18b32b8b3" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ad78d46dc0992b34b27c13cf18b32b8b3">release</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Release access mode read scheduling. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62079064c104878b451760d961ff5d27"></a><!-- doxytag: member="ConditionalAccess::~ConditionalAccess" ref="a62079064c104878b451760d961ff5d27" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a62079064c104878b451760d961ff5d27">~ConditionalAccess</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy conditional, release any blocked threads. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab41b548c6e7761c05f6b2a33019fdbe"></a><!-- doxytag: member="ConditionalAccess::broadcast" ref="aab41b548c6e7761c05f6b2a33019fdbe" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#aab41b548c6e7761c05f6b2a33019fdbe">broadcast</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal the conditional to release all broadcast threads. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a700fa26d6f658e6e35847f8271082e70"></a><!-- doxytag: member="ConditionalAccess::lock" ref="a700fa26d6f658e6e35847f8271082e70" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a700fa26d6f658e6e35847f8271082e70">lock</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock the conditional's supporting mutex. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75be8dc8122a8704fe642bc5b55ec6d2"></a><!-- doxytag: member="ConditionalAccess::signal" ref="a75be8dc8122a8704fe642bc5b55ec6d2" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a75be8dc8122a8704fe642bc5b55ec6d2">signal</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal the conditional to release one signalled thread. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51c86cd1ba14fedfc2856d0cc020db15"></a><!-- doxytag: member="ConditionalAccess::unlock" ref="a51c86cd1ba14fedfc2856d0cc020db15" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a51c86cd1ba14fedfc2856d0cc020db15">unlock</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock the conditional's supporting mutex. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebc127ed615e466e3ac382ee9aeb053c"></a><!-- doxytag: member="ConditionalAccess::waitBroadcast" ref="aebc127ed615e466e3ac382ee9aeb053c" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#aebc127ed615e466e3ac382ee9aeb053c">waitBroadcast</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait (block) until broadcast. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a7c5ece71fe61c52d2ca8ae6f6a9efd7a">waitBroadcast</a> (<a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for broadcast on millisecond timeout.  <a href="#a7c5ece71fe61c52d2ca8ae6f6a9efd7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#abe1ad94778b7974f932381e80ccf05bc">waitBroadcast</a> (struct timespec *timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for broadcast on timespec timeout.  <a href="#abe1ad94778b7974f932381e80ccf05bc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fed6958c093864e2edfe20474dbc2dc"></a><!-- doxytag: member="ConditionalAccess::waitSignal" ref="a2fed6958c093864e2edfe20474dbc2dc" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a2fed6958c093864e2edfe20474dbc2dc">waitSignal</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait (block) until signalled. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a9f92e1fca87cfa9eb18a6b95ebd3107d">waitSignal</a> (<a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for signal on millisecond timeout.  <a href="#a9f92e1fca87cfa9eb18a6b95ebd3107d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a4dd8049c3f59286e1e43acdf1638cef7">waitSignal</a> (struct timespec *timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for signal on timespec timeout.  <a href="#a4dd8049c3f59286e1e43acdf1638cef7"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#abcbe36aff9866dd3104abade7e1783a9">gettimeout</a> (<a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout, struct timespec *hires)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a millisecond timeout into use for high resolution conditional timers.  <a href="#abcbe36aff9866dd3104abade7e1783a9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa5dcf750946b1baaf303a51898deeb3"></a><!-- doxytag: member="ConditionalAccess::pending" ref="afa5dcf750946b1baaf303a51898deeb3" args="" -->
unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>pending</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a667433810f2d319e9003e0a7ee2265f5"></a><!-- doxytag: member="ConditionalAccess::sharing" ref="a667433810f2d319e9003e0a7ee2265f5" args="" -->
unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>sharing</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75c0fcb9cd8fb81c884e959b9f0b4c20"></a><!-- doxytag: member="ConditionalAccess::waiting" ref="a75c0fcb9cd8fb81c884e959b9f0b4c20" args="" -->
unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>waiting</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The conditional rw seperates scheduling for optizming behavior or rw locks. </p>
<p>This varient of conditonal seperates scheduling read (broadcast wakeup) and write (signal wakeup) based threads. This is used to form generic rwlock's as well as the specialized condlock. </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="a00200_source.html#l00210">210</a> of file <a class="el" href="a00200_source.html">thread.h</a>.</p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="abcbe36aff9866dd3104abade7e1783a9"></a><!-- doxytag: member="ConditionalAccess::gettimeout" ref="abcbe36aff9866dd3104abade7e1783a9" args="(timeout_t timeout, struct timespec *hires)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ConditionalAccess::gettimeout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timespec *&#160;</td>
          <td class="paramname"><em>hires</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert a millisecond timeout into use for high resolution conditional timers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>to convert. </td></tr>
    <tr><td class="paramname">hires</td><td>timespec representation to fill. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="a00034.html#af4a2bd33fe0e25ba29e2b014991a3b7d">Conditional</a>.</p>

<p>Definition at line <a class="el" href="a00200_source.html#l00255">255</a> of file <a class="el" href="a00200_source.html">thread.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00035_abcbe36aff9866dd3104abade7e1783a9_cgraph.png" border="0" usemap="#a00035_abcbe36aff9866dd3104abade7e1783a9_cgraph" alt=""/></div>
<map name="a00035_abcbe36aff9866dd3104abade7e1783a9_cgraph" id="a00035_abcbe36aff9866dd3104abade7e1783a9_cgraph">
<area shape="rect" id="node3" href="a00034.html#af4a2bd33fe0e25ba29e2b014991a3b7d" title="Convert a millisecond timeout into use for high resolution conditional timers." alt="" coords="367,5,617,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a1560077c2575b6d3d981b1c1efd191c5"></a><!-- doxytag: member="ConditionalAccess::limit_sharing" ref="a1560077c2575b6d3d981b1c1efd191c5" args="(unsigned max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ConditionalAccess::limit_sharing </td>
          <td>(</td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>max</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specify a maximum sharing (access) limit. </p>
<p>This can be used to detect locking errors, such as when aquiring locks that are not released. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">max</td><td>sharing level. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abe1ad94778b7974f932381e80ccf05bc"></a><!-- doxytag: member="ConditionalAccess::waitBroadcast" ref="abe1ad94778b7974f932381e80ccf05bc" args="(struct timespec *timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ConditionalAccess::waitBroadcast </td>
          <td>(</td>
          <td class="paramtype">struct timespec *&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for broadcast on timespec timeout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>as a high resolution timespec. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if signalled, false if timer expired. </dd></dl>

</div>
</div>
<a class="anchor" id="a7c5ece71fe61c52d2ca8ae6f6a9efd7a"></a><!-- doxytag: member="ConditionalAccess::waitBroadcast" ref="a7c5ece71fe61c52d2ca8ae6f6a9efd7a" args="(timeout_t timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ConditionalAccess::waitBroadcast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for broadcast on millisecond timeout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>in milliseconds. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if signalled, false if timer expired. </dd></dl>

</div>
</div>
<a class="anchor" id="a9f92e1fca87cfa9eb18a6b95ebd3107d"></a><!-- doxytag: member="ConditionalAccess::waitSignal" ref="a9f92e1fca87cfa9eb18a6b95ebd3107d" args="(timeout_t timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ConditionalAccess::waitSignal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for signal on millisecond timeout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>in milliseconds. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if signalled, false if timer expired. </dd></dl>

</div>
</div>
<a class="anchor" id="a4dd8049c3f59286e1e43acdf1638cef7"></a><!-- doxytag: member="ConditionalAccess::waitSignal" ref="a4dd8049c3f59286e1e43acdf1638cef7" args="(struct timespec *timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ConditionalAccess::waitSignal </td>
          <td>(</td>
          <td class="paramtype">struct timespec *&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes.">Conditional</a> wait for signal on timespec timeout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>as a high resolution timespec. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if signalled, false if timer expired. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00200_source.html">thread.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a00035.html">ConditionalAccess</a>      </li>
      <li class="footer">Generated on Wed Apr 13 2011 22:39:47 for ucommon by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>