Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 6756

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Threads</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<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="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Threads</div>  </div>
<div class="ingroups"><a class="el" href="group__mrpt__base__grp.html">[mrpt-base]</a></div></div>
<div class="contents">
<div class="dynheader">
Collaboration diagram for Threads:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__mrpt__thread.png" border="0" alt="" usemap="#group____mrpt____thread"/>
<map name="group____mrpt____thread" id="group____mrpt____thread">
<area shape="rect" id="node2" href="group__mrpt__base__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="5,5,93,32"/></map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">mrpt::system::TThreadHandle</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This structure contains the information needed to interface the threads API on each platform:  <a href="structmrpt_1_1system_1_1_t_thread_handle.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1system_1_1detail.html">mrpt::system::detail</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Auxiliary classes used internally to MRPT. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga8c2faa8d1ee370745e9f2c89a417bfa7">mrpt::system::TProcessPriority</a> { <a class="el" href="group__mrpt__thread.html#gga8c2faa8d1ee370745e9f2c89a417bfa7a11576a4e0680e8495b63a94fa985abfc">mrpt::system::ppIdle</a> =  0, 
<a class="el" href="group__mrpt__thread.html#gga8c2faa8d1ee370745e9f2c89a417bfa7ad46800cfc911ac0aeb26f404f1a9e878">mrpt::system::ppNormal</a>, 
<a class="el" href="group__mrpt__thread.html#gga8c2faa8d1ee370745e9f2c89a417bfa7a192fc163166ceb14848bd98f1bd85fb4">mrpt::system::ppHigh</a>, 
<a class="el" href="group__mrpt__thread.html#gga8c2faa8d1ee370745e9f2c89a417bfa7a14f9bd2a1ce9ee2f9a12efba60b29fbb">mrpt::system::ppVeryHigh</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for cross-platform process (application) priorities.  <a href="group__mrpt__thread.html#ga8c2faa8d1ee370745e9f2c89a417bfa7">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga37334359dc65d0cbef086685c837d27f">mrpt::system::TThreadPriority</a> { <br/>
&#160;&#160;<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27faae6a0fd19982e5399847a60d84c6a331">mrpt::system::tpLowests</a> = -15, 
<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27fa3db6aa1cdd443d3e9a3720ab3359ad3c">mrpt::system::tpLower</a> =  -2, 
<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27fa9948aeb6966e10119b2d071b03e1413f">mrpt::system::tpLow</a> =  -1, 
<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27fa243a1b412b7e45a03e20a29929f8623e">mrpt::system::tpNormal</a> =  0, 
<br/>
&#160;&#160;<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27fa38bb74f11a1213377c6ee7f353df5db9">mrpt::system::tpHigh</a> =  1, 
<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27fadc1841e96aacf7d7facd67c800db8fea">mrpt::system::tpHigher</a> =  2, 
<a class="el" href="group__mrpt__thread.html#gga37334359dc65d0cbef086685c837d27fa728be646684f5ed4faf4ec507e3c9bcd">mrpt::system::tpHighest</a> =  15
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for cross-platform thread priorities.  <a href="group__mrpt__thread.html#ga37334359dc65d0cbef086685c837d27f">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">TThreadHandle&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e">mrpt::system::createThread</a> (void(*func)(T), T param)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new thread from a function (or static method) with one generic parameter.  <a href="#ga336f5607e34b84bc7ac208068aa8e51e"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">TThreadHandle&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga81d1604616b261ab0b5536bcf6657f03">mrpt::system::createThreadRef</a> (void(*func)(T &amp;), T &amp;param)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TThreadHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gac7a010553c47446af4b7ab7b1abf5a74">mrpt::system::createThread</a> (void(*func)(void))</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename CLASS , typename PARAM &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">TThreadHandle&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga04ca9cd3d32cc923c6fd4e42fc196e85">mrpt::system::createThreadFromObjectMethod</a> (CLASS *obj, void(CLASS::*func)(PARAM), PARAM param)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new thread running a non-static method (so it will have access to "this") from another method of the same class - with one generic parameter.  <a href="#ga04ca9cd3d32cc923c6fd4e42fc196e85"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename CLASS , typename PARAM &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">TThreadHandle&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga69b2eb14aae15372652e1600b192f74e">mrpt::system::createThreadFromObjectMethodRef</a> (CLASS *obj, void(CLASS::*func)(PARAM), PARAM &amp;param)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename CLASS &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">TThreadHandle&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gab663a7d9d2285640bd5f2bbe473568cb">mrpt::system::createThreadFromObjectMethod</a> (CLASS *obj, void(CLASS::*func)(void))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga723810cea7feb46c7391c245c5c5eec2">mrpt::system::joinThread</a> (const TThreadHandle &amp;threadHandle)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits until the given thread ends.  <a href="#ga723810cea7feb46c7391c245c5c5eec2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga826a49a3efec4b9e5bc76b3aff870a0a">mrpt::system::getCurrentThreadId</a> () MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the ID of the current thread.  <a href="#ga826a49a3efec4b9e5bc76b3aff870a0a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TThreadHandle BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga6c18cb71a8a0db7e757015dcab8bde75">mrpt::system::getCurrentThreadHandle</a> () MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a handle to the current thread.  <a href="#ga6c18cb71a8a0db7e757015dcab8bde75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gabe2474d80e16d3e0a5f755a0cb486658">mrpt::system::exitThread</a> () MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Explicit close of the current (running) thread.  <a href="#gabe2474d80e16d3e0a5f755a0cb486658"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga07d252d6de608a5cf3a4c1380c2ecdb1">mrpt::system::getCurrentThreadTimes</a> (time_t &amp;creationTime, time_t &amp;exitTime, double &amp;cpuTime)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the creation and exit times of the current thread and its CPU time consumed.  <a href="#ga07d252d6de608a5cf3a4c1380c2ecdb1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga9b12b6fd6d150e35bffd8a8ee8169cd8">mrpt::system::changeThreadPriority</a> (const TThreadHandle &amp;threadHandle, TThreadPriority priority)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the priority of the given thread.  <a href="#ga9b12b6fd6d150e35bffd8a8ee8169cd8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gafbfb426dee2ea19f7c557b64ef60aa69">mrpt::system::terminateThread</a> (TThreadHandle &amp;threadHandle) MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate a thread, giving it no choice to delete objects, etc (use only as a last resource)  <a href="#gafbfb426dee2ea19f7c557b64ef60aa69"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gaa4698e4d733682e6ca4277bf6776e8fb">mrpt::system::changeCurrentProcessPriority</a> (TProcessPriority priority)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the priority of the given process (it applies to all the threads, plus independent modifiers for each thread).  <a href="#gaa4698e4d733682e6ca4277bf6776e8fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#ga2d962c5a835828188d209dc802623ca5">mrpt::system::getNumberOfProcessors</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of processors ("cores"), or 1 if it cannot be determined.  <a href="#ga2d962c5a835828188d209dc802623ca5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gaade78123d72cf506a2c590ea26ec51ac">mrpt::system::sleep</a> (int time_ms) MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An OS-independent method for sending the current thread to "sleep" for a given period of time.  <a href="#gaade78123d72cf506a2c590ea26ec51ac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__thread.html#gabc593b2c772be33e679b1a8311a1ca46">mrpt::system::launchProcess</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;command)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes the given command (which may contain a program + arguments), and waits until it finishes.  <a href="#gabc593b2c772be33e679b1a8311a1ca46"></a><br/></td></tr>
</table>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga8c2faa8d1ee370745e9f2c89a417bfa7"></a><!-- doxytag: member="mrpt::system::TProcessPriority" ref="ga8c2faa8d1ee370745e9f2c89a417bfa7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mrpt__thread.html#ga8c2faa8d1ee370745e9f2c89a417bfa7">mrpt::system::TProcessPriority</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type for cross-platform process (application) priorities. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#gaa4698e4d733682e6ca4277bf6776e8fb" title="Change the priority of the given process (it applies to all the threads, plus independent modifiers f...">changeCurrentProcessPriority</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga8c2faa8d1ee370745e9f2c89a417bfa7a11576a4e0680e8495b63a94fa985abfc"></a><!-- doxytag: member="ppIdle" ref="gga8c2faa8d1ee370745e9f2c89a417bfa7a11576a4e0680e8495b63a94fa985abfc" args="" -->ppIdle</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga8c2faa8d1ee370745e9f2c89a417bfa7ad46800cfc911ac0aeb26f404f1a9e878"></a><!-- doxytag: member="ppNormal" ref="gga8c2faa8d1ee370745e9f2c89a417bfa7ad46800cfc911ac0aeb26f404f1a9e878" args="" -->ppNormal</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga8c2faa8d1ee370745e9f2c89a417bfa7a192fc163166ceb14848bd98f1bd85fb4"></a><!-- doxytag: member="ppHigh" ref="gga8c2faa8d1ee370745e9f2c89a417bfa7a192fc163166ceb14848bd98f1bd85fb4" args="" -->ppHigh</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga8c2faa8d1ee370745e9f2c89a417bfa7a14f9bd2a1ce9ee2f9a12efba60b29fbb"></a><!-- doxytag: member="ppVeryHigh" ref="gga8c2faa8d1ee370745e9f2c89a417bfa7a14f9bd2a1ce9ee2f9a12efba60b29fbb" args="" -->ppVeryHigh</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00089">89</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga37334359dc65d0cbef086685c837d27f"></a><!-- doxytag: member="mrpt::system::TThreadPriority" ref="ga37334359dc65d0cbef086685c837d27f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mrpt__thread.html#ga37334359dc65d0cbef086685c837d27f">mrpt::system::TThreadPriority</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type for cross-platform thread priorities. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga9b12b6fd6d150e35bffd8a8ee8169cd8" title="Change the priority of the given thread.">changeThreadPriority</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27faae6a0fd19982e5399847a60d84c6a331"></a><!-- doxytag: member="tpLowests" ref="gga37334359dc65d0cbef086685c837d27faae6a0fd19982e5399847a60d84c6a331" args="" -->tpLowests</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27fa3db6aa1cdd443d3e9a3720ab3359ad3c"></a><!-- doxytag: member="tpLower" ref="gga37334359dc65d0cbef086685c837d27fa3db6aa1cdd443d3e9a3720ab3359ad3c" args="" -->tpLower</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27fa9948aeb6966e10119b2d071b03e1413f"></a><!-- doxytag: member="tpLow" ref="gga37334359dc65d0cbef086685c837d27fa9948aeb6966e10119b2d071b03e1413f" args="" -->tpLow</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27fa243a1b412b7e45a03e20a29929f8623e"></a><!-- doxytag: member="tpNormal" ref="gga37334359dc65d0cbef086685c837d27fa243a1b412b7e45a03e20a29929f8623e" args="" -->tpNormal</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27fa38bb74f11a1213377c6ee7f353df5db9"></a><!-- doxytag: member="tpHigh" ref="gga37334359dc65d0cbef086685c837d27fa38bb74f11a1213377c6ee7f353df5db9" args="" -->tpHigh</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27fadc1841e96aacf7d7facd67c800db8fea"></a><!-- doxytag: member="tpHigher" ref="gga37334359dc65d0cbef086685c837d27fadc1841e96aacf7d7facd67c800db8fea" args="" -->tpHigher</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga37334359dc65d0cbef086685c837d27fa728be646684f5ed4faf4ec507e3c9bcd"></a><!-- doxytag: member="tpHighest" ref="gga37334359dc65d0cbef086685c837d27fa728be646684f5ed4faf4ec507e3c9bcd" args="" -->tpHighest</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00099">99</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaa4698e4d733682e6ca4277bf6776e8fb"></a><!-- doxytag: member="mrpt::system::changeCurrentProcessPriority" ref="gaa4698e4d733682e6ca4277bf6776e8fb" args="(TProcessPriority priority)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::changeCurrentProcessPriority </td>
          <td>(</td>
          <td class="paramtype">TProcessPriority&#160;</td>
          <td class="paramname"><em>priority</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the priority of the given process (it applies to all the threads, plus independent modifiers for each thread). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">createThread</a>, <a class="el" href="group__mrpt__thread.html#ga9b12b6fd6d150e35bffd8a8ee8169cd8" title="Change the priority of the given thread.">changeThreadPriority</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga9b12b6fd6d150e35bffd8a8ee8169cd8"></a><!-- doxytag: member="mrpt::system::changeThreadPriority" ref="ga9b12b6fd6d150e35bffd8a8ee8169cd8" args="(const TThreadHandle &amp;threadHandle, TThreadPriority priority)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::changeThreadPriority </td>
          <td>(</td>
          <td class="paramtype">const TThreadHandle &amp;&#160;</td>
          <td class="paramname"><em>threadHandle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TThreadPriority&#160;</td>
          <td class="paramname"><em>priority</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the priority of the given thread. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">createThread</a>, <a class="el" href="group__mrpt__thread.html#gaa4698e4d733682e6ca4277bf6776e8fb" title="Change the priority of the given process (it applies to all the threads, plus independent modifiers f...">changeCurrentProcessPriority</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga336f5607e34b84bc7ac208068aa8e51e"></a><!-- doxytag: member="mrpt::system::createThread" ref="ga336f5607e34b84bc7ac208068aa8e51e" args="(void(*func)(T), T param)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle mrpt::system::createThread </td>
          <td>(</td>
          <td class="paramtype">void(*)(T)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a new thread from a function (or static method) with one generic parameter. </p>
<p>This function creates, and start, a new thread running some code given by a function. The thread function should end by returning as normal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function with the code to run in the thread. </td></tr>
    <tr><td class="paramname">param</td><td>The parameter to be passed to the new thread function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A structure that represents the thread (it contains its ID and, in Windows, its HANDLE). </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the operation fails </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga04ca9cd3d32cc923c6fd4e42fc196e85" title="Creates a new thread running a non-static method (so it will have access to &quot;this&quot;) from another meth...">createThreadFromObjectMethod</a>, <a class="el" href="group__mrpt__thread.html#ga723810cea7feb46c7391c245c5c5eec2" title="Waits until the given thread ends.">joinThread</a>, <a class="el" href="group__mrpt__thread.html#ga9b12b6fd6d150e35bffd8a8ee8169cd8" title="Change the priority of the given thread.">changeThreadPriority</a> </dd></dl>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00200">200</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

<p>References <a class="el" href="threads_8h_source.html#l00122">mrpt::system::detail::ThreadCreateFunctor::createThread()</a>.</p>

</div>
</div>
<a class="anchor" id="gac7a010553c47446af4b7ab7b1abf5a74"></a><!-- doxytag: member="mrpt::system::createThread" ref="gac7a010553c47446af4b7ab7b1abf5a74" args="(void(*func)(void))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle mrpt::system::createThread </td>
          <td>(</td>
          <td class="paramtype">void(*)(void)&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00208">208</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

<p>References <a class="el" href="threads_8h_source.html#l00145">mrpt::system::detail::ThreadCreateFunctorNoParams::createThread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga04ca9cd3d32cc923c6fd4e42fc196e85"></a><!-- doxytag: member="mrpt::system::createThreadFromObjectMethod" ref="ga04ca9cd3d32cc923c6fd4e42fc196e85" args="(CLASS *obj, void(CLASS::*func)(PARAM), PARAM param)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CLASS , typename PARAM &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle mrpt::system::createThreadFromObjectMethod </td>
          <td>(</td>
          <td class="paramtype">CLASS *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(CLASS::*)(PARAM)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PARAM&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a new thread running a non-static method (so it will have access to "this") from another method of the same class - with one generic parameter. </p>
<p>This function creates, and start, a new thread running some code given by a function. The thread function should end by returning as normal. Example of usage:</p>
<div class="fragment"><pre class="fragment">    <span class="keyword">class </span>MyClass {
    <span class="keyword">public</span>:
      <span class="keywordtype">void</span> myThread(<span class="keywordtype">int</span> n);
      <span class="keywordtype">void</span> someMethod() {
         <a class="code" href="group__mrpt__thread.html#ga04ca9cd3d32cc923c6fd4e42fc196e85" title="Creates a new thread running a non-static method (so it will have access to &quot;this&quot;) from another meth...">createThreadFromObjectMethod</a>(<span class="keyword">this</span>, &amp;MyClass::myThread, 123 );
         ....
      }
    };
</pre></div><dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function with the code to run in the thread. </td></tr>
    <tr><td class="paramname">param</td><td>The parameter to be passed to the new thread function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A structure that represents the thread (it contains its ID and, in Windows, its HANDLE). </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the operation fails </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">createThread</a>, <a class="el" href="group__mrpt__thread.html#ga723810cea7feb46c7391c245c5c5eec2" title="Waits until the given thread ends.">joinThread</a>, <a class="el" href="group__mrpt__thread.html#ga9b12b6fd6d150e35bffd8a8ee8169cd8" title="Change the priority of the given thread.">changeThreadPriority</a> </dd></dl>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00235">235</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

<p>References <a class="el" href="threads_8h_source.html#l00165">mrpt::system::detail::ThreadCreateObjectFunctor::createThread()</a>.</p>

</div>
</div>
<a class="anchor" id="gab663a7d9d2285640bd5f2bbe473568cb"></a><!-- doxytag: member="mrpt::system::createThreadFromObjectMethod" ref="gab663a7d9d2285640bd5f2bbe473568cb" args="(CLASS *obj, void(CLASS::*func)(void))" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CLASS &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle mrpt::system::createThreadFromObjectMethod </td>
          <td>(</td>
          <td class="paramtype">CLASS *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(CLASS::*)(void)&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00245">245</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

<p>References <a class="el" href="threads_8h_source.html#l00184">mrpt::system::detail::ThreadCreateObjectFunctorNoParams::createThread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga69b2eb14aae15372652e1600b192f74e"></a><!-- doxytag: member="mrpt::system::createThreadFromObjectMethodRef" ref="ga69b2eb14aae15372652e1600b192f74e" args="(CLASS *obj, void(CLASS::*func)(PARAM), PARAM &amp;param)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CLASS , typename PARAM &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle mrpt::system::createThreadFromObjectMethodRef </td>
          <td>(</td>
          <td class="paramtype">CLASS *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(CLASS::*)(PARAM)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PARAM &amp;&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00240">240</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

<p>References <a class="el" href="threads_8h_source.html#l00165">mrpt::system::detail::ThreadCreateObjectFunctor::createThread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga81d1604616b261ab0b5536bcf6657f03"></a><!-- doxytag: member="mrpt::system::createThreadRef" ref="ga81d1604616b261ab0b5536bcf6657f03" args="(void(*func)(T &amp;), T &amp;param)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle mrpt::system::createThreadRef </td>
          <td>(</td>
          <td class="paramtype">void(*)(T &amp;)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="threads_8h_source.html#l00204">204</a> of file <a class="el" href="threads_8h_source.html">threads.h</a>.</p>

<p>References <a class="el" href="threads_8h_source.html#l00122">mrpt::system::detail::ThreadCreateFunctor::createThread()</a>.</p>

</div>
</div>
<a class="anchor" id="gabe2474d80e16d3e0a5f755a0cb486658"></a><!-- doxytag: member="mrpt::system::exitThread" ref="gabe2474d80e16d3e0a5f755a0cb486658" args="() MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::exitThread </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Explicit close of the current (running) thread. </p>
<p>Do not use normally, it's better just to return from the running thread function. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">createThread</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga6c18cb71a8a0db7e757015dcab8bde75"></a><!-- doxytag: member="mrpt::system::getCurrentThreadHandle" ref="ga6c18cb71a8a0db7e757015dcab8bde75" args="() MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TThreadHandle BASE_IMPEXP mrpt::system::getCurrentThreadHandle </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a handle to the current thread. </p>

</div>
</div>
<a class="anchor" id="ga826a49a3efec4b9e5bc76b3aff870a0a"></a><!-- doxytag: member="mrpt::system::getCurrentThreadId" ref="ga826a49a3efec4b9e5bc76b3aff870a0a" args="() MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long BASE_IMPEXP mrpt::system::getCurrentThreadId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the ID of the current thread. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga6c18cb71a8a0db7e757015dcab8bde75" title="Returns a handle to the current thread.">getCurrentThreadHandle</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga07d252d6de608a5cf3a4c1380c2ecdb1"></a><!-- doxytag: member="mrpt::system::getCurrentThreadTimes" ref="ga07d252d6de608a5cf3a4c1380c2ecdb1" args="(time_t &amp;creationTime, time_t &amp;exitTime, double &amp;cpuTime)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::getCurrentThreadTimes </td>
          <td>(</td>
          <td class="paramtype">time_t &amp;&#160;</td>
          <td class="paramname"><em>creationTime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t &amp;&#160;</td>
          <td class="paramname"><em>exitTime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>cpuTime</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the creation and exit times of the current thread and its CPU time consumed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">creationTime</td><td>The creation time of the thread. </td></tr>
    <tr><td class="paramname">exitTime</td><td>The exit time of the thread, or undefined if it is still running. </td></tr>
    <tr><td class="paramname">cpuTime</td><td>The CPU time consumed by the thread, in seconds. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the operation fails </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga6c18cb71a8a0db7e757015dcab8bde75" title="Returns a handle to the current thread.">getCurrentThreadHandle</a>, <a class="el" href="group__mrpt__thread.html#ga826a49a3efec4b9e5bc76b3aff870a0a" title="Returns the ID of the current thread.">getCurrentThreadId</a>, <a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">createThread</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga2d962c5a835828188d209dc802623ca5"></a><!-- doxytag: member="mrpt::system::getNumberOfProcessors" ref="ga2d962c5a835828188d209dc802623ca5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int BASE_IMPEXP mrpt::system::getNumberOfProcessors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number of processors ("cores"), or 1 if it cannot be determined. </p>

</div>
</div>
<a class="anchor" id="ga723810cea7feb46c7391c245c5c5eec2"></a><!-- doxytag: member="mrpt::system::joinThread" ref="ga723810cea7feb46c7391c245c5c5eec2" args="(const TThreadHandle &amp;threadHandle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::joinThread </td>
          <td>(</td>
          <td class="paramtype">const TThreadHandle &amp;&#160;</td>
          <td class="paramname"><em>threadHandle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Waits until the given thread ends. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__thread.html#ga336f5607e34b84bc7ac208068aa8e51e" title="Creates a new thread from a function (or static method) with one generic parameter.">createThread</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gabc593b2c772be33e679b1a8311a1ca46"></a><!-- doxytag: member="mrpt::system::launchProcess" ref="gabc593b2c772be33e679b1a8311a1ca46" args="(const std::string &amp;command)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool BASE_IMPEXP mrpt::system::launchProcess </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>command</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Executes the given command (which may contain a program + arguments), and waits until it finishes. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error, true otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="gaade78123d72cf506a2c590ea26ec51ac"></a><!-- doxytag: member="mrpt::system::sleep" ref="gaade78123d72cf506a2c590ea26ec51ac" args="(int time_ms) MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::sleep </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>time_ms</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An OS-independent method for sending the current thread to "sleep" for a given period of time. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">time_ms</td><td>The sleep period, in miliseconds. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafbfb426dee2ea19f7c557b64ef60aa69"></a><!-- doxytag: member="mrpt::system::terminateThread" ref="gafbfb426dee2ea19f7c557b64ef60aa69" args="(TThreadHandle &amp;threadHandle) MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BASE_IMPEXP mrpt::system::terminateThread </td>
          <td>(</td>
          <td class="paramtype">TThreadHandle &amp;&#160;</td>
          <td class="paramname"><em>threadHandle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Terminate a thread, giving it no choice to delete objects, etc (use only as a last resource) </p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>