<!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 Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data 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> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-static-methods">Static Protected Member Functions</a> | <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 <<a class="el" href="a00200_source.html">thread.h</a>></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#acaa6653b643ee9afb5a106690c5efe3e">access</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a926c3327686f18ee701775c606eae79d">commit</a> (void)</td></tr> <tr><td class="mdescLeft"> </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="()" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a4e78e7d82e5bf84a12292e4029995e9f">ConditionalAccess</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize and construct conditional. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a1560077c2575b6d3d981b1c1efd191c5">limit_sharing</a> (unsigned max)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a1f3c9b6430890905b2ed7afa6aac5be7">modify</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ad78d46dc0992b34b27c13cf18b32b8b3">release</a> (void)</td></tr> <tr><td class="mdescLeft"> </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="()" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a62079064c104878b451760d961ff5d27">~ConditionalAccess</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#aab41b548c6e7761c05f6b2a33019fdbe">broadcast</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a700fa26d6f658e6e35847f8271082e70">lock</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a75be8dc8122a8704fe642bc5b55ec6d2">signal</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a51c86cd1ba14fedfc2856d0cc020db15">unlock</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#aebc127ed615e466e3ac382ee9aeb053c">waitBroadcast</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wait (block) until broadcast. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#abe1ad94778b7974f932381e80ccf05bc">waitBroadcast</a> (struct timespec *timeout)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a2fed6958c093864e2edfe20474dbc2dc">waitSignal</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wait (block) until signalled. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a4dd8049c3f59286e1e43acdf1638cef7">waitSignal</a> (struct timespec *timeout)</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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 </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 </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 <<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>> </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> </td> <td class="paramname"><em>timeout</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct timespec * </td> <td class="paramname"><em>hires</em> </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 </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 * </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> </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> </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 * </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  <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>