Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-updates > by-pkgid > f36f42783f75191f5f2d47f1e8c5504e > files > 664

lib64commoncpp-devel-1.8.0-5.1mdv2010.1.x86_64.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>GNU CommonC++: thread.h File 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="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>thread.h File Reference</h1>
<p>Synchronization and threading services.  
<a href="#_details">More...</a></p>
<code>#include &lt;<a class="el" href="config_8h_source.html">cc++/config.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="string_8h_source.html">cc++/string.h</a>&gt;</code><br/>
<code>#include &lt;ctime&gt;</code><br/>
<code>#include &lt;pthread.h&gt;</code><br/>
<code>#include &lt;time.h&gt;</code><br/>
<code>#include &lt;signal.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>

<p><a href="thread_8h_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html">ost::Mutex</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only...">Mutex</a> class is used to protect a section of code so that at any given time only a single thread can perform the protected operation.  <a href="classost_1_1_mutex.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex_lock.html">ost::MutexLock</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_mutex_lock.html" title="The MutexLock class is used to protect a section of code so that at any given time...">MutexLock</a> class is used to protect a section of code so that at any given time only a single thread can perform the protected operation.  <a href="classost_1_1_mutex_lock.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_lock.html">ost::ThreadLock</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_thread_lock.html" title="The ThreadLock class impliments a thread rwlock for optimal reader performance on...">ThreadLock</a> class impliments a thread rwlock for optimal reader performance on systems which have rwlock support, and reverts to a simple mutex for those that do not.  <a href="classost_1_1_thread_lock.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_read_lock.html">ost::ReadLock</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_read_lock.html" title="The ReadLock class is used to protect a section of code through a ThreadLock for...">ReadLock</a> class is used to protect a section of code through a <a class="el" href="classost_1_1_thread_lock.html" title="The ThreadLock class impliments a thread rwlock for optimal reader performance on...">ThreadLock</a> for "read" access to the member function.  <a href="classost_1_1_read_lock.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_write_lock.html">ost::WriteLock</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_write_lock.html" title="The WriteLock class is used to protect a section of code through a ThreadLock for...">WriteLock</a> class is used to protect a section of code through a <a class="el" href="classost_1_1_thread_lock.html" title="The ThreadLock class impliments a thread rwlock for optimal reader performance on...">ThreadLock</a> for "write" access to the member function.  <a href="classost_1_1_write_lock.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex_counter.html">ost::MutexCounter</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only...">Mutex</a> <a class="el" href="classost_1_1_counter.html" title="The counter template is used for generic objects which act as automatic counters...">Counter</a> is a counter variable which can safely be incremented or decremented by multiple threads.  <a href="classost_1_1_mutex_counter.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_atomic_counter.html">ost::AtomicCounter</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_atomic_counter.html" title="The AtomicCounter class offers thread-safe manipulation of an integer counter.">AtomicCounter</a> class offers thread-safe manipulation of an integer counter.  <a href="classost_1_1_atomic_counter.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_conditional.html">ost::Conditional</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A conditional variable synchcronization object for one to one and one to many signal and control events between processes.  <a href="classost_1_1_conditional.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html">ost::Semaphore</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A semaphore is generally used as a synchronization object between multiple threads or to protect a limited and finite resource such as a memory or thread pool.  <a href="classost_1_1_semaphore.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore_lock.html">ost::SemaphoreLock</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_semaphore_lock.html" title="The SemaphoreLock class is used to protect a section of code through a semaphore...">SemaphoreLock</a> class is used to protect a section of code through a semaphore so that only x instances of the member function may execute concurrently.  <a href="classost_1_1_semaphore_lock.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_event.html">ost::Event</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="classost_1_1_event.html" title="The Event class implements a feature originally found in the WIN32 API; event notification...">Event</a> class implements a feature originally found in the WIN32 API; event notification.  <a href="classost_1_1_event.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html">ost::Thread</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Every thread of execution in an application is created by instantiating an object of a class derived from the <a class="el" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object...">Thread</a> class.  <a href="classost_1_1_thread.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_cancellation.html">ost::Cancellation</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A class to automatically set the thread cancellation mode of a member function.  <a href="classost_1_1_cancellation.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_posix_thread.html">ost::PosixThread</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_key.html">ost::ThreadKey</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class allows the creation of a thread context unique "pointer" that can be set and retrieved and can be used to create thread specific data areas for implementing "thread safe" library routines.  <a href="classost_1_1_thread_key.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_timer_port.html">ost::TimerPort</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Timer ports are used to provide synchronized timing events when managed under a "service thread" such as <a class="el" href="classost_1_1_socket_service.html" title="The SocketService is a thread pool object that is meant to service attached socket...">SocketService</a>.  <a href="classost_1_1_timer_port.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_sys_time.html">ost::SysTime</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class is used to access non-reentrant date and time functions in the standard C library.  <a href="classost_1_1_sys_time.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html">ost</a></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a9fc514088fa3739a1300ce30ca6585d5">CCXX_POSIX</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>&nbsp;&nbsp;&nbsp;~((<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>) 0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a9d5589bc014dcec626ff198d5c9370cd">ENTER_CRITICAL</a>&nbsp;&nbsp;&nbsp;enterMutex();</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#af1b76aeceb2370c5fcedee46f9cd3d09">LEAVE_CRITICAL</a>&nbsp;&nbsp;&nbsp;leaveMutex();</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a61438c8055883ef92ffb09c68f70f049">ENTER_DEFERRED</a>&nbsp;&nbsp;&nbsp;setCancel(cancelDeferred);</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#ac6e53238dd0519d7c7117b2b40d4312b">LEAVE_DEFERRED</a>&nbsp;&nbsp;&nbsp;setCancel(cancelImmediate);</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a5e09ab8cba99b274fd420bd76f39b205">psleep</a>(x)&nbsp;&nbsp;&nbsp;(sleep)(x)</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef pthread_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a3f0d0226a694bf1e508e1b1c758e6ae6">cctid_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a5dca865b107f598c88bd2106ea56c16e">ost::signo_t</a></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct timespec *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a8fd139f80e945ac6d8cc53868cdacca6">ost::getTimeout</a> (struct timespec *spec, <a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a24c7774639b3768bdd45b65a296f6369">ost::wait</a> (signo_t signo)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Thread *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a99c7f7d02b00922b0f5ee62fc3bb75fd">ost::getThread</a> (void)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Synchronization and threading services. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a9fc514088fa3739a1300ce30ca6585d5"></a><!-- doxytag: member="thread.h::CCXX_POSIX" ref="a9fc514088fa3739a1300ce30ca6585d5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CCXX_POSIX</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9d5589bc014dcec626ff198d5c9370cd"></a><!-- doxytag: member="thread.h::ENTER_CRITICAL" ref="a9d5589bc014dcec626ff198d5c9370cd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTER_CRITICAL&nbsp;&nbsp;&nbsp;enterMutex();</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a61438c8055883ef92ffb09c68f70f049"></a><!-- doxytag: member="thread.h::ENTER_DEFERRED" ref="a61438c8055883ef92ffb09c68f70f049" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTER_DEFERRED&nbsp;&nbsp;&nbsp;setCancel(cancelDeferred);</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af1b76aeceb2370c5fcedee46f9cd3d09"></a><!-- doxytag: member="thread.h::LEAVE_CRITICAL" ref="af1b76aeceb2370c5fcedee46f9cd3d09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LEAVE_CRITICAL&nbsp;&nbsp;&nbsp;leaveMutex();</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac6e53238dd0519d7c7117b2b40d4312b"></a><!-- doxytag: member="thread.h::LEAVE_DEFERRED" ref="ac6e53238dd0519d7c7117b2b40d4312b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LEAVE_DEFERRED&nbsp;&nbsp;&nbsp;setCancel(cancelImmediate);</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5e09ab8cba99b274fd420bd76f39b205"></a><!-- doxytag: member="thread.h::psleep" ref="a5e09ab8cba99b274fd420bd76f39b205" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define psleep</td>
          <td>(</td>
          <td class="paramtype">x&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;(sleep)(x)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a74f2d4c747bce0b8f7f7c1f48e651876"></a><!-- doxytag: member="thread.h::TIMEOUT_INF" ref="a74f2d4c747bce0b8f7f7c1f48e651876" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TIMEOUT_INF&nbsp;&nbsp;&nbsp;~((<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>) 0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a3f0d0226a694bf1e508e1b1c758e6ae6"></a><!-- doxytag: member="thread.h::cctid_t" ref="a3f0d0226a694bf1e508e1b1c758e6ae6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef pthread_t <a class="el" href="thread_8h.html#a3f0d0226a694bf1e508e1b1c758e6ae6">cctid_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af412159e5cef839836a5e7b19ee75d1c"></a><!-- doxytag: member="thread.h::timeout_t" ref="af412159e5cef839836a5e7b19ee75d1c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned long <a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Nov 12 09:57:39 2010 for GNU CommonC++ 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>