<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Crystal Space 1.2.1: csutil/thread.h File Reference (Crystal Space 1.2.1 Public API Reference)</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="head"> <tr height="59"> <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td> <td class="head"><h2>Public API Reference</h2></td> </tr> <tr height="11"> <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td> </tr> </table> <div class="content"> <!-- Generated by Doxygen 1.5.3 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</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="classes.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <h1>csutil/thread.h File Reference</h1>Threading and synchronization support. <a href="#_details">More...</a> <p> <code>#include "<a class="el" href="ref_8h-source.html">csutil/ref.h</a>"</code><br> <code>#include "<a class="el" href="refcount_8h-source.html">csutil/refcount.h</a>"</code><br> <code>#include "<a class="el" href="msvc__deprecated__warn__off_8h-source.html">csutil/win32/msvc_deprecated_warn_off.h</a>"</code><br> <code>#include "<a class="el" href="msvc__deprecated__warn__on_8h-source.html">csutil/win32/msvc_deprecated_warn_on.h</a>"</code><br> <p> <a href="thread_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsCondition.html">csCondition</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A condition object. <a href="classcsCondition.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMutex.html">csMutex</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A mutual-exclusion object. <a href="classcsMutex.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRunnable.html">csRunnable</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract interface for objects which can be run in a thread. <a href="classcsRunnable.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsSemaphore.html">csSemaphore</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A semaphore object. <a href="classcsSemaphore.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsThread.html">csThread</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Representation of a thread of executation. <a href="classcsThread.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <br> <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef60130afc337dfc224041732fb64c5d328">CS_THREAD_NO_ERROR</a> = 0, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6a22080abefd96fdabab2866affe77688">CS_THREAD_UNKNOWN_ERROR</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6ff595ef7d934a8d3f5b44ee91a6949ce">CS_THREAD_OUT_OF_RESOURCES</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef611fdb89f4735212e9cd61f4a024c42ce">CS_THREAD_ERR_ATTRIBUTE</a>, <br> <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef63e8baf30bc913a9383ab23daab110d01">CS_THREAD_NO_PERMISSION</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6f62ff65a4063fb3aa1c3b50005808f25">CS_THREAD_UNKNOWN_THREAD</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6b0d839ea1a6b7929d63ffc656c457c77">CS_THREAD_DEADLOCK</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6e4393f7e5bab1f1dff88c33982d3905a">CS_THREAD_OPERATION_PENDING</a>, <br> <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef613b493aaa6a02012a82bab5665f7b1d5">CS_THREAD_MUTEX_NOT_INITIALIZED</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef615dc1b9a3578055fa7feeb579226c94b">CS_THREAD_MUTEX_BUSY</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6df15fe252e1725f263b9a0d87a05ddca">CS_THREAD_MUTEX_UNKNOWN</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef69220681e5d5aba5fad03010cc5f24b7f">CS_THREAD_CONDITION_TIMEOUT</a>, <br> <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6028d6904034803d88387af31a4c1cbfb">CS_THREAD_CONDITION_BUSY</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6c85274d0fc64f41eda14b8520ca4e1fb">CS_THREAD_CONDITION_WAIT_INTERRUPTED</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef69fd61ed3001e8b877c13eaea9cc730a0">CS_THREAD_SIGNAL_UNKNOWN</a>, <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6946fc13f2c93b6c272bfdb87d16bee0d">CS_THREAD_SEMA_VALUE_TOO_LARGE</a>, <br> <a class="el" href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef605ba5bb0e5d46450f7ec028888d7bfc5">CS_THREAD_SEMA_BUSY</a> <br> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">List of errorcodes for threads. <a href="thread_8h.html#e6dceca96ec2c7a1b4aa211264a87ef6">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html#3d607d7f8fb2cff5e7a70ac8ba03afb3">csThreadPriority</a> { <a class="el" href="thread_8h.html#3d607d7f8fb2cff5e7a70ac8ba03afb3ff7c459a3f7f382eecf3750305bbc6a2">CS_THREAD_PRIORITY_IDLE</a> = 0, <a class="el" href="thread_8h.html#3d607d7f8fb2cff5e7a70ac8ba03afb3cb87800fb332515f20f61046576b377d">CS_THREAD_PRIORITY_NORMAL</a>, <a class="el" href="thread_8h.html#3d607d7f8fb2cff5e7a70ac8ba03afb3ce3dbfa7d7379e50f8710a9884924a2d">CS_THREAD_PRIORITY_TIMECRITICAL</a> }</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Threading and synchronization support. <p> <p>Definition in file <a class="el" href="thread_8h-source.html">thread.h</a>.</p> <hr><h2>Enumeration Type Documentation</h2> <a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6"></a><!-- doxytag: member="thread.h::@58" ref="e6dceca96ec2c7a1b4aa211264a87ef6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum </td> </tr> </table> </div> <div class="memdoc"> <p> List of errorcodes for threads. <p> <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef60130afc337dfc224041732fb64c5d328"></a><!-- doxytag: member="CS_THREAD_NO_ERROR" ref="e6dceca96ec2c7a1b4aa211264a87ef60130afc337dfc224041732fb64c5d328" args="" -->CS_THREAD_NO_ERROR</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6a22080abefd96fdabab2866affe77688"></a><!-- doxytag: member="CS_THREAD_UNKNOWN_ERROR" ref="e6dceca96ec2c7a1b4aa211264a87ef6a22080abefd96fdabab2866affe77688" args="" -->CS_THREAD_UNKNOWN_ERROR</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6ff595ef7d934a8d3f5b44ee91a6949ce"></a><!-- doxytag: member="CS_THREAD_OUT_OF_RESOURCES" ref="e6dceca96ec2c7a1b4aa211264a87ef6ff595ef7d934a8d3f5b44ee91a6949ce" args="" -->CS_THREAD_OUT_OF_RESOURCES</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef611fdb89f4735212e9cd61f4a024c42ce"></a><!-- doxytag: member="CS_THREAD_ERR_ATTRIBUTE" ref="e6dceca96ec2c7a1b4aa211264a87ef611fdb89f4735212e9cd61f4a024c42ce" args="" -->CS_THREAD_ERR_ATTRIBUTE</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef63e8baf30bc913a9383ab23daab110d01"></a><!-- doxytag: member="CS_THREAD_NO_PERMISSION" ref="e6dceca96ec2c7a1b4aa211264a87ef63e8baf30bc913a9383ab23daab110d01" args="" -->CS_THREAD_NO_PERMISSION</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6f62ff65a4063fb3aa1c3b50005808f25"></a><!-- doxytag: member="CS_THREAD_UNKNOWN_THREAD" ref="e6dceca96ec2c7a1b4aa211264a87ef6f62ff65a4063fb3aa1c3b50005808f25" args="" -->CS_THREAD_UNKNOWN_THREAD</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6b0d839ea1a6b7929d63ffc656c457c77"></a><!-- doxytag: member="CS_THREAD_DEADLOCK" ref="e6dceca96ec2c7a1b4aa211264a87ef6b0d839ea1a6b7929d63ffc656c457c77" args="" -->CS_THREAD_DEADLOCK</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6e4393f7e5bab1f1dff88c33982d3905a"></a><!-- doxytag: member="CS_THREAD_OPERATION_PENDING" ref="e6dceca96ec2c7a1b4aa211264a87ef6e4393f7e5bab1f1dff88c33982d3905a" args="" -->CS_THREAD_OPERATION_PENDING</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef613b493aaa6a02012a82bab5665f7b1d5"></a><!-- doxytag: member="CS_THREAD_MUTEX_NOT_INITIALIZED" ref="e6dceca96ec2c7a1b4aa211264a87ef613b493aaa6a02012a82bab5665f7b1d5" args="" -->CS_THREAD_MUTEX_NOT_INITIALIZED</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef615dc1b9a3578055fa7feeb579226c94b"></a><!-- doxytag: member="CS_THREAD_MUTEX_BUSY" ref="e6dceca96ec2c7a1b4aa211264a87ef615dc1b9a3578055fa7feeb579226c94b" args="" -->CS_THREAD_MUTEX_BUSY</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6df15fe252e1725f263b9a0d87a05ddca"></a><!-- doxytag: member="CS_THREAD_MUTEX_UNKNOWN" ref="e6dceca96ec2c7a1b4aa211264a87ef6df15fe252e1725f263b9a0d87a05ddca" args="" -->CS_THREAD_MUTEX_UNKNOWN</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef69220681e5d5aba5fad03010cc5f24b7f"></a><!-- doxytag: member="CS_THREAD_CONDITION_TIMEOUT" ref="e6dceca96ec2c7a1b4aa211264a87ef69220681e5d5aba5fad03010cc5f24b7f" args="" -->CS_THREAD_CONDITION_TIMEOUT</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6028d6904034803d88387af31a4c1cbfb"></a><!-- doxytag: member="CS_THREAD_CONDITION_BUSY" ref="e6dceca96ec2c7a1b4aa211264a87ef6028d6904034803d88387af31a4c1cbfb" args="" -->CS_THREAD_CONDITION_BUSY</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6c85274d0fc64f41eda14b8520ca4e1fb"></a><!-- doxytag: member="CS_THREAD_CONDITION_WAIT_INTERRUPTED" ref="e6dceca96ec2c7a1b4aa211264a87ef6c85274d0fc64f41eda14b8520ca4e1fb" args="" -->CS_THREAD_CONDITION_WAIT_INTERRUPTED</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef69fd61ed3001e8b877c13eaea9cc730a0"></a><!-- doxytag: member="CS_THREAD_SIGNAL_UNKNOWN" ref="e6dceca96ec2c7a1b4aa211264a87ef69fd61ed3001e8b877c13eaea9cc730a0" args="" -->CS_THREAD_SIGNAL_UNKNOWN</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef6946fc13f2c93b6c272bfdb87d16bee0d"></a><!-- doxytag: member="CS_THREAD_SEMA_VALUE_TOO_LARGE" ref="e6dceca96ec2c7a1b4aa211264a87ef6946fc13f2c93b6c272bfdb87d16bee0d" args="" -->CS_THREAD_SEMA_VALUE_TOO_LARGE</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="e6dceca96ec2c7a1b4aa211264a87ef605ba5bb0e5d46450f7ec028888d7bfc5"></a><!-- doxytag: member="CS_THREAD_SEMA_BUSY" ref="e6dceca96ec2c7a1b4aa211264a87ef605ba5bb0e5d46450f7ec028888d7bfc5" args="" -->CS_THREAD_SEMA_BUSY</em> </td><td> </td></tr> </table> </dl> <p>Definition at line <a class="el" href="thread_8h-source.html#l00032">32</a> of file <a class="el" href="thread_8h-source.html">thread.h</a>.</p> </div> </div><p> <a class="anchor" name="3d607d7f8fb2cff5e7a70ac8ba03afb3"></a><!-- doxytag: member="thread.h::csThreadPriority" ref="3d607d7f8fb2cff5e7a70ac8ba03afb3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="thread_8h.html#3d607d7f8fb2cff5e7a70ac8ba03afb3">csThreadPriority</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="3d607d7f8fb2cff5e7a70ac8ba03afb3ff7c459a3f7f382eecf3750305bbc6a2"></a><!-- doxytag: member="CS_THREAD_PRIORITY_IDLE" ref="3d607d7f8fb2cff5e7a70ac8ba03afb3ff7c459a3f7f382eecf3750305bbc6a2" args="" -->CS_THREAD_PRIORITY_IDLE</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="3d607d7f8fb2cff5e7a70ac8ba03afb3cb87800fb332515f20f61046576b377d"></a><!-- doxytag: member="CS_THREAD_PRIORITY_NORMAL" ref="3d607d7f8fb2cff5e7a70ac8ba03afb3cb87800fb332515f20f61046576b377d" args="" -->CS_THREAD_PRIORITY_NORMAL</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="3d607d7f8fb2cff5e7a70ac8ba03afb3ce3dbfa7d7379e50f8710a9884924a2d"></a><!-- doxytag: member="CS_THREAD_PRIORITY_TIMECRITICAL" ref="3d607d7f8fb2cff5e7a70ac8ba03afb3ce3dbfa7d7379e50f8710a9884924a2d" args="" -->CS_THREAD_PRIORITY_TIMECRITICAL</em> </td><td> </td></tr> </table> </dl> <p>Definition at line <a class="el" href="thread_8h-source.html#l00059">59</a> of file <a class="el" href="thread_8h-source.html">thread.h</a>.</p> </div> </div><p> <hr size="1"><address><small>Generated for Crystal Space 1.2.1 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 </small></address> </div></body> </html>