<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>GNU CommonC++: thread.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">GNU CommonC++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <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><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 id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="dir_6b3e09e31d3da6038137f0238e9fb19b.html">cc++</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#namespaces">Namespaces</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">thread.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>Synchronization and threading services. <a href="#details">More...</a></p> <div class="textblock"><code>#include <<a class="el" href="config_8h_source.html">cc++/config.h</a>></code><br/> <code>#include <<a class="el" href="string_8h_source.html">cc++/string.h</a>></code><br/> <code>#include <ctime></code><br/> <code>#include <pthread.h></code><br/> <code>#include <time.h></code><br/> <code>#include <signal.h></code><br/> <code>#include <unistd.h></code><br/> </div> <p><a href="thread_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html">ost::Mutex</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 a single thread c...">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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex_lock.html">ost::MutexLock</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 only a single thre...">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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_lock.html">ost::ThreadLock</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 systems which have ...">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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_read_lock.html">ost::ReadLock</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 "read" access to the...">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 systems which have ...">ThreadLock</a> for "read" access to the member function. <a href="classost_1_1_read_lock.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_write_lock.html">ost::WriteLock</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 "write" access to t...">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 systems which have ...">ThreadLock</a> for "write" access to the member function. <a href="classost_1_1_write_lock.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex_counter.html">ost::MutexCounter</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 a single thread c...">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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_atomic_counter.html">ost::AtomicCounter</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_conditional.html">ost::Conditional</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html">ost::Semaphore</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore_lock.html">ost::SemaphoreLock</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 so that only x insta...">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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_event.html">ost::Event</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html">ost::Thread</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 of a class derived ...">Thread</a> class. <a href="classost_1_1_thread.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_cancellation.html">ost::Cancellation</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_posix_thread.html">ost::PosixThread</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_key.html">ost::ThreadKey</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_timer_port.html">ost::TimerPort</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 ports...">SocketService</a>. <a href="classost_1_1_timer_port.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_sys_time.html">ost::SysTime</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </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 class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> Namespaces</h2></td></tr> <tr class="memitem:namespaceost"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html">ost</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a9fc514088fa3739a1300ce30ca6585d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a9fc514088fa3739a1300ce30ca6585d5">CCXX_POSIX</a></td></tr> <tr class="separator:a9fc514088fa3739a1300ce30ca6585d5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a74f2d4c747bce0b8f7f7c1f48e651876"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>   ~((<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>) 0)</td></tr> <tr class="separator:a74f2d4c747bce0b8f7f7c1f48e651876"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9d5589bc014dcec626ff198d5c9370cd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a9d5589bc014dcec626ff198d5c9370cd">ENTER_CRITICAL</a>   enterMutex();</td></tr> <tr class="separator:a9d5589bc014dcec626ff198d5c9370cd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af1b76aeceb2370c5fcedee46f9cd3d09"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#af1b76aeceb2370c5fcedee46f9cd3d09">LEAVE_CRITICAL</a>   leaveMutex();</td></tr> <tr class="separator:af1b76aeceb2370c5fcedee46f9cd3d09"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a61438c8055883ef92ffb09c68f70f049"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a61438c8055883ef92ffb09c68f70f049">ENTER_DEFERRED</a>   setCancel(cancelDeferred);</td></tr> <tr class="separator:a61438c8055883ef92ffb09c68f70f049"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac6e53238dd0519d7c7117b2b40d4312b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#ac6e53238dd0519d7c7117b2b40d4312b">LEAVE_DEFERRED</a>   setCancel(cancelImmediate);</td></tr> <tr class="separator:ac6e53238dd0519d7c7117b2b40d4312b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5e09ab8cba99b274fd420bd76f39b205"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a5e09ab8cba99b274fd420bd76f39b205">psleep</a>(x)   (sleep)(x)</td></tr> <tr class="separator:a5e09ab8cba99b274fd420bd76f39b205"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a3f0d0226a694bf1e508e1b1c758e6ae6"><td class="memItemLeft" align="right" valign="top">typedef pthread_t </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#a3f0d0226a694bf1e508e1b1c758e6ae6">cctid_t</a></td></tr> <tr class="separator:a3f0d0226a694bf1e508e1b1c758e6ae6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af412159e5cef839836a5e7b19ee75d1c"><td class="memItemLeft" align="right" valign="top">typedef unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a></td></tr> <tr class="separator:af412159e5cef839836a5e7b19ee75d1c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5dca865b107f598c88bd2106ea56c16e"><td class="memItemLeft" align="right" valign="top">typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a5dca865b107f598c88bd2106ea56c16e">ost::signo_t</a></td></tr> <tr class="separator:a5dca865b107f598c88bd2106ea56c16e"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a8fd139f80e945ac6d8cc53868cdacca6"><td class="memItemLeft" align="right" valign="top">struct timespec * </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 class="separator:a8fd139f80e945ac6d8cc53868cdacca6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a24c7774639b3768bdd45b65a296f6369"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a24c7774639b3768bdd45b65a296f6369">ost::wait</a> (signo_t signo)</td></tr> <tr class="separator:a24c7774639b3768bdd45b65a296f6369"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a99c7f7d02b00922b0f5ee62fc3bb75fd"><td class="memItemLeft" align="right" valign="top">Thread * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a99c7f7d02b00922b0f5ee62fc3bb75fd">ost::getThread</a> (void)</td></tr> <tr class="separator:a99c7f7d02b00922b0f5ee62fc3bb75fd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2532506cb80f89403523d977ef6c2345"><td class="memItemLeft" align="right" valign="top">struct tm * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a2532506cb80f89403523d977ef6c2345">ost::localtime_r</a> (const time_t *t, struct tm *b)</td></tr> <tr class="separator:a2532506cb80f89403523d977ef6c2345"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1951b0e03ecb3bf227e19855d3a1f11a"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a1951b0e03ecb3bf227e19855d3a1f11a">ost::ctime_r</a> (const time_t *t, char *buf)</td></tr> <tr class="separator:a1951b0e03ecb3bf227e19855d3a1f11a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a64c9138a1bf7a0d56fc8060fa1e4552c"><td class="memItemLeft" align="right" valign="top">struct tm * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a64c9138a1bf7a0d56fc8060fa1e4552c">ost::gmtime_r</a> (const time_t *t, struct tm *b)</td></tr> <tr class="separator:a64c9138a1bf7a0d56fc8060fa1e4552c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d84108739f29b7fbc773f1a57a3a439"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a6d84108739f29b7fbc773f1a57a3a439">ost::asctime_r</a> (const struct tm *tm, char *b)</td></tr> <tr class="separator:a6d84108739f29b7fbc773f1a57a3a439"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:a1a3b6738f6f759fcb52b544a4787cbb2"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a1a3b6738f6f759fcb52b544a4787cbb2">ost::Thread</a></td></tr> <tr class="separator:a1a3b6738f6f759fcb52b544a4787cbb2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1a0b31279d4e241eba24d251d1682176"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a1a0b31279d4e241eba24d251d1682176">ost::ThreadKey</a></td></tr> <tr class="separator:a1a0b31279d4e241eba24d251d1682176"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4528eecdfa02ab10dbfdc49f5b238506"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#a4528eecdfa02ab10dbfdc49f5b238506">ost::Conditional</a></td></tr> <tr class="separator:a4528eecdfa02ab10dbfdc49f5b238506"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa1f2ab8ff95e0568261375df5837eb19"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceost.html#aa1f2ab8ff95e0568261375df5837eb19">ost::Event</a></td></tr> <tr class="separator:aa1f2ab8ff95e0568261375df5837eb19"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Synchronization and threading services. </p> </div><h2 class="groupheader">Macro Definition Documentation</h2> <a class="anchor" id="a9fc514088fa3739a1300ce30ca6585d5"></a> <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> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ENTER_CRITICAL   enterMutex();</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a61438c8055883ef92ffb09c68f70f049"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ENTER_DEFERRED   setCancel(cancelDeferred);</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="af1b76aeceb2370c5fcedee46f9cd3d09"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LEAVE_CRITICAL   leaveMutex();</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ac6e53238dd0519d7c7117b2b40d4312b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LEAVE_DEFERRED   setCancel(cancelImmediate);</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a5e09ab8cba99b274fd420bd76f39b205"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define psleep</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (sleep)(x)</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a74f2d4c747bce0b8f7f7c1f48e651876"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TIMEOUT_INF   ~((<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>) 0)</td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="a3f0d0226a694bf1e508e1b1c758e6ae6"></a> <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> <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><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Oct 17 2013 23:24:57 for GNU CommonC++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>