<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <!-- THIS FILE IS AUTOMATICALLY GENERATED FROM THE GLOBUS SOURCE CODE DO NOT MODIFY. --> <title>Globus Reference Manual</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head> <body> <!-- Generated by Doxygen 1.8.3.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> </ul> </div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('group__globus__cond.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Condition Variables<div class="ingroups"><a class="el" href="group__globus__thread.html">Threading</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Collaboration diagram for Condition Variables:</div> <div class="dyncontent"> <center><table><tr><td><img src="group__globus__cond.png" border="0" alt="" usemap="#group____globus____cond"/> <map name="group____globus____cond" id="group____globus____cond"> <area shape="rect" id="node1" href="group__globus__thread.html" title="The Globus runtime includes support for portably creating threads on POSIX and Windows systems..." alt="" coords="6,5,85,32"/></map> </td></tr></table></center> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</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="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga1c074938c3f7c436bb6c3248a698533a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga1c074938c3f7c436bb6c3248a698533a">globus_cond_init</a> (<a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> *cond, <a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> *attr)</td></tr> <tr class="separator:ga1c074938c3f7c436bb6c3248a698533a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4eb0f26fc152d2c2ec956cfde24e4190"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga4eb0f26fc152d2c2ec956cfde24e4190">globus_cond_destroy</a> (<a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> *cond)</td></tr> <tr class="separator:ga4eb0f26fc152d2c2ec956cfde24e4190"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9b58106e5b1b2545ab45db0e3e4f98b0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait</a> (<a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> *cond, <a class="el" href="unionglobus__mutex__t.html">globus_mutex_t</a> *mutex)</td></tr> <tr class="separator:ga9b58106e5b1b2545ab45db0e3e4f98b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaaeabb30d3449c1d693b02241f92fd6b5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#gaaeabb30d3449c1d693b02241f92fd6b5">globus_cond_timedwait</a> (<a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> *cond, <a class="el" href="unionglobus__mutex__t.html">globus_mutex_t</a> *mutex, globus_abstime_t *abstime)</td></tr> <tr class="separator:gaaeabb30d3449c1d693b02241f92fd6b5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga05a56b1f671782a6a2c0d2c72292dd47"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga05a56b1f671782a6a2c0d2c72292dd47">globus_cond_signal</a> (<a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> *cond)</td></tr> <tr class="separator:ga05a56b1f671782a6a2c0d2c72292dd47"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga380d237b678089096a9e23487b20393f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga380d237b678089096a9e23487b20393f">globus_cond_broadcast</a> (<a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> *cond)</td></tr> <tr class="separator:ga380d237b678089096a9e23487b20393f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2d3d2973d1d31d574ea3eb524bea0304"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga2d3d2973d1d31d574ea3eb524bea0304">globus_condattr_init</a> (<a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> *cond_attr)</td></tr> <tr class="separator:ga2d3d2973d1d31d574ea3eb524bea0304"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0a0ed173728c392dc6778ec913c40c31"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#ga0a0ed173728c392dc6778ec913c40c31">globus_condattr_destroy</a> (<a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> *cond_attr)</td></tr> <tr class="separator:ga0a0ed173728c392dc6778ec913c40c31"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacca6f5cb093ac7aed78c91416f85843f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#gacca6f5cb093ac7aed78c91416f85843f">globus_condattr_setspace</a> (<a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> *cond_attr, int space)</td></tr> <tr class="separator:gacca6f5cb093ac7aed78c91416f85843f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaacfdc80dc9721a8cd2f8ebe9b999f46a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__cond.html#gaacfdc80dc9721a8cd2f8ebe9b999f46a">globus_condattr_getspace</a> (<a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> *cond_attr, int *space)</td></tr> <tr class="separator:gaacfdc80dc9721a8cd2f8ebe9b999f46a"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>The <a class="el" href="unionglobus__cond__t.html" title="Condition variable.">globus_cond_t</a> provides condition variables for signalling events between threads interested in particular state. One or many threads may wait on a condition variable until it is signalled, at which point they can attempt to lock a mutex related to that condition's state and process the event.</p> <p>In a non-threaded model, the condition variable wait operations are used to poll the event driver to handle any operations that have been scheduled for execution by the globus_callback system or I/O system. In this way, applications written to use those systems to handle nonblocking operations will work with either a threaded or nonthreaded runtime choice. </p> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="ga1c074938c3f7c436bb6c3248a698533a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_cond_init </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> * </td> <td class="paramname"><em>cond</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> * </td> <td class="paramname"><em>attr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Initialize a condition variableThe <a class="el" href="group__globus__cond.html#ga1c074938c3f7c436bb6c3248a698533a" title="Initialize a condition variableThe globus_cond_init() function creates a condition variable that can ...">globus_cond_init()</a> function creates a condition variable that can be used for event signalling between threads. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond</td><td>Pointer to the condition variable to initialize. </td></tr> <tr><td class="paramname">attr</td><td>Condition variable attributes.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>On success, <a class="el" href="group__globus__cond.html#ga1c074938c3f7c436bb6c3248a698533a" title="Initialize a condition variableThe globus_cond_init() function creates a condition variable that can ...">globus_cond_init()</a> initializes the condition variable and returns GLOBUS_SUCCESS. Otherwise, a non-0 value is returned. </dd></dl> </div> </div> <a class="anchor" id="ga4eb0f26fc152d2c2ec956cfde24e4190"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_cond_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> * </td> <td class="paramname"><em>cond</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destroy a condition variable. </p> <pre class="fragment">The globus_cond_destroy() function destroys the condition variable pointed to by its @a cond parameter. After a condition variable is destroyed it may no longer be used unless it is again initialized by globus_cond_init(). </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond</td><td>The condition variable to destroy. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>On success, <a class="el" href="group__globus__cond.html#ga4eb0f26fc152d2c2ec956cfde24e4190" title="Destroy a condition variable.">globus_cond_destroy()</a> returns GLOBUS_SUCCESS. Otherwise, a non-zero implementation-specific error value is returned. </dd></dl> </div> </div> <a class="anchor" id="ga9b58106e5b1b2545ab45db0e3e4f98b0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_cond_wait </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> * </td> <td class="paramname"><em>cond</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="unionglobus__mutex__t.html">globus_mutex_t</a> * </td> <td class="paramname"><em>mutex</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Wait for a condition to be signalled. </p> <pre class="fragment">The globus_cond_wait() function atomically unlocks the mutex pointed to by the @a mutex parameter and blocks the current thread until the condition variable pointed to by @a cond is signalled by either globus_cond_signal() or globus_cond_broadcast(). Behavior is undefined if globus_cond_wait() is called with the mutex pointed to by the @a mutex variable unlocked. </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond</td><td>The condition variable to wait for. </td></tr> <tr><td class="paramname">mutex</td><td>The mutex associated with the condition state.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>On success, <a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0" title="Wait for a condition to be signalled.">globus_cond_wait()</a> unlocks the mutex and blocks the current thread until it has been signalled, returning GLOBUS_SUCCES. Otherwise, <a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0" title="Wait for a condition to be signalled.">globus_cond_wait()</a> returns an implementation-specific non-zero error value. </dd></dl> </div> </div> <a class="anchor" id="gaaeabb30d3449c1d693b02241f92fd6b5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_cond_timedwait </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> * </td> <td class="paramname"><em>cond</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="unionglobus__mutex__t.html">globus_mutex_t</a> * </td> <td class="paramname"><em>mutex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_abstime_t * </td> <td class="paramname"><em>abstime</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Wait for a condition to be signalled. </p> <pre class="fragment">The globus_cond_timedwait() function atomically unlocks the mutex pointed to by the @a mutex parameter and blocks the current thread until either the condition variable pointed to by @a cond is signalled by another thread or the current time exceeds the value pointed to by the @a abstime parameter. If the timeout occurs before the condition is signalled, globus_cond_timedwait() returns ETIMEDOUT. Behavior is undefined if globus_cond_timedwait() is called with the mutex pointed to by the @a mutex variable unlocked. </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond</td><td>The condition variable to wait for. </td></tr> <tr><td class="paramname">mutex</td><td>The mutex associated with the condition state. </td></tr> <tr><td class="paramname">abstime</td><td>The absolute time to wait until.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>On success, <a class="el" href="group__globus__cond.html#gaaeabb30d3449c1d693b02241f92fd6b5" title="Wait for a condition to be signalled.">globus_cond_timedwait()</a> unlocks the mutex and blocks the current thread until it has been signalled, returning GLOBUS_SUCCES. If a timeout occurs before signal, <a class="el" href="group__globus__cond.html#gaaeabb30d3449c1d693b02241f92fd6b5" title="Wait for a condition to be signalled.">globus_cond_timedwait()</a> unlocks the mutex and returns ETIMEDOUT. Otherwise, <a class="el" href="group__globus__cond.html#gaaeabb30d3449c1d693b02241f92fd6b5" title="Wait for a condition to be signalled.">globus_cond_timedwait()</a> returns an implementation-specific non-zero error value. </dd></dl> </div> </div> <a class="anchor" id="ga05a56b1f671782a6a2c0d2c72292dd47"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_cond_signal </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> * </td> <td class="paramname"><em>cond</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Signal a condition to a thread. </p> <pre class="fragment">The globus_cond_signal() function signals a condition as occurring. This will unblock at least one thread waiting for that condition. </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond</td><td>A pointer to the condition variable to signal. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__cond.html#ga05a56b1f671782a6a2c0d2c72292dd47" title="Signal a condition to a thread.">globus_cond_signal()</a> returns GLOBUS_SUCCESS. If an error occurs, <a class="el" href="group__globus__cond.html#ga05a56b1f671782a6a2c0d2c72292dd47" title="Signal a condition to a thread.">globus_cond_signal()</a> returns an implementation-specific non-zero error code. </dd></dl> </div> </div> <a class="anchor" id="ga380d237b678089096a9e23487b20393f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_cond_broadcast </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__cond__t.html">globus_cond_t</a> * </td> <td class="paramname"><em>cond</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Signal a condition to multiple threads. </p> <pre class="fragment">The globus_cond_signal() function signals a condition as occurring. This will unblock all threads waiting for that condition. </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond</td><td>A pointer to the condition variable to signal. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__cond.html#ga380d237b678089096a9e23487b20393f" title="Signal a condition to multiple threads.">globus_cond_broadcast()</a> returns GLOBUS_SUCCESS. If an error occurs, <a class="el" href="group__globus__cond.html#ga380d237b678089096a9e23487b20393f" title="Signal a condition to multiple threads.">globus_cond_broadcast()</a> returns an implementation-specific non-zero error code. </dd></dl> </div> </div> <a class="anchor" id="ga2d3d2973d1d31d574ea3eb524bea0304"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_condattr_init </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> * </td> <td class="paramname"><em>cond_attr</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Initialize a condition variable attribute. </p> <pre class="fragment">The globus_condattr_init() function initializes the condition variable attribute structure pointed to by its @a cond_attr parameter to the system default values. </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond_attr</td><td>Attribute structure to initialize.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__cond.html#ga2d3d2973d1d31d574ea3eb524bea0304" title="Initialize a condition variable attribute.">globus_condattr_init()</a> returns GLOBUS_SUCCESS and modifies the attribute pointed to by <em>cond_attr</em>. If an error occurs, <a class="el" href="group__globus__cond.html#ga2d3d2973d1d31d574ea3eb524bea0304" title="Initialize a condition variable attribute.">globus_condattr_init()</a> returns an implementation-specific non-zero error code. </dd></dl> </div> </div> <a class="anchor" id="ga0a0ed173728c392dc6778ec913c40c31"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_condattr_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> * </td> <td class="paramname"><em>cond_attr</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destroy a condition attribute. </p> <pre class="fragment">The globus_condattr_destroy() function destroys the condition variable attribute structure pointed to by its @a cond_attr parameter. </pre><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond_attr</td><td>Attribute structure to destroy.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__cond.html#ga0a0ed173728c392dc6778ec913c40c31" title="Destroy a condition attribute.">globus_condattr_destroy()</a> returns GLOBUS_SUCCESS and modifies the attribute pointed to by <em>cond_attr</em>. If an error occurs, <a class="el" href="group__globus__cond.html#ga0a0ed173728c392dc6778ec913c40c31" title="Destroy a condition attribute.">globus_condattr_destroy()</a> returns an implementation-specific non-zero error code. </dd></dl> </div> </div> <a class="anchor" id="gacca6f5cb093ac7aed78c91416f85843f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_condattr_setspace </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> * </td> <td class="paramname"><em>cond_attr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>space</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set callback space associated with a condition variable attributeThe <a class="el" href="group__globus__cond.html#gacca6f5cb093ac7aed78c91416f85843f" title="Set callback space associated with a condition variable attributeThe globus_condattr_setspace() funct...">globus_condattr_setspace()</a> function sets the callback space to use with condition variables created with this attribute. </p> <p>Callback spaces are used to control how callbacks are issued to different threads. See <a class="el" href="group__globus__callback__spaces.html">Callback Spaces </a> for more information on callback spaces.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond_attr</td><td>Condition variable attribute to modify. </td></tr> <tr><td class="paramname">space</td><td>Callback space to associate with the attribute.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>On success, <a class="el" href="group__globus__cond.html#gacca6f5cb093ac7aed78c91416f85843f" title="Set callback space associated with a condition variable attributeThe globus_condattr_setspace() funct...">globus_condattr_setspace()</a> returns GLOBUS_SUCCESS and adds a reference to the callback space to the condition variable attribute. If an error occurs, <a class="el" href="group__globus__cond.html#gacca6f5cb093ac7aed78c91416f85843f" title="Set callback space associated with a condition variable attributeThe globus_condattr_setspace() funct...">globus_condattr_setspace()</a> returns an implementation-specific non-zero error code. </dd></dl> </div> </div> <a class="anchor" id="gaacfdc80dc9721a8cd2f8ebe9b999f46a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_condattr_getspace </td> <td>(</td> <td class="paramtype"><a class="el" href="unionglobus__condattr__t.html">globus_condattr_t</a> * </td> <td class="paramname"><em>cond_attr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>space</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Get callback space associated with a condition variable attributeThe <a class="el" href="group__globus__cond.html#gaacfdc80dc9721a8cd2f8ebe9b999f46a" title="Get callback space associated with a condition variable attributeThe globus_condattr_getspace() funct...">globus_condattr_getspace()</a> function copies the value of the callback space associated with a condition variable attribute to the integer pointed to by the <em>space</em> parameter. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">cond_attr</td><td>Condition variable attribute to modify. </td></tr> <tr><td class="paramname">space</td><td>Pointer to an integer to be set to point to the callback space associated with cond_attr.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>On success, <a class="el" href="group__globus__cond.html#gaacfdc80dc9721a8cd2f8ebe9b999f46a" title="Get callback space associated with a condition variable attributeThe globus_condattr_getspace() funct...">globus_condattr_getspace()</a> returns GLOBUS_SUCCESS and modifies the value pointed to by <em>space</em> to refer to the callback space associated with <em>cond_attr</em>. If an error occurs, <a class="el" href="group__globus__cond.html#gaacfdc80dc9721a8cd2f8ebe9b999f46a" title="Get callback space associated with a condition variable attributeThe globus_condattr_getspace() funct...">globus_condattr_getspace()</a> returns an implementation-specific non-zero error code. </dd></dl> </div> </div> </div><!-- contents --> </div><!-- doc-content --> <hr> <p align="center"> <a href="http://www.globus.org/toolkit/about.html" target="_top">about globus</a> | <a href="http://www.globus.org/toolkit/" target="_top">globus toolkit</a> | <a href="https://dev.globus.org/wiki/Welcome/" target="_top">dev.globus</a> <br> <br> Comments? <a href="mailto:webmaster@globus.org">webmaster@globus.org</a> </body> </html>