Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 5b095c1dcccf87f92298aa569e0d8cd3 > files > 43

globus-common-doc-14.10-2.fc18.noarch.rpm

<!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&#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="annotated.html"><span>Data&#160;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__callback__api.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Globus Callback API<div class="ingroups"><a class="el" href="group__globus__callback.html">Globus Callback</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Globus Callback API:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__globus__callback__api.png" border="0" alt="" usemap="#group____globus____callback____api"/>
<map name="group____globus____callback____api" id="group____globus____callback____api">
<area shape="rect" id="node1" href="group__globus__callback.html" title=" &#160;&lt;a href=&quot;main.html&quot; target=&quot;_top&quot;&gt;View documentation without frames&lt;/a&gt;&lt;br&gt; &lt;a href=&quot;index.html&quot; target=&quot;_top&quot;&gt;View documentation with frames&lt;/a&gt;&lt;br&gt; " alt="" coords="6,5,125,32"/></map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Convenience Macros</h2></td></tr>
<tr class="memitem:ga1042269f15b8fdfea578e741afc49b79"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga1042269f15b8fdfea578e741afc49b79">globus_callback_poll</a>(a)</td></tr>
<tr class="separator:ga1042269f15b8fdfea578e741afc49b79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c593841698b6a60e31a013314bd2b1f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga2c593841698b6a60e31a013314bd2b1f">globus_poll_blocking</a>()</td></tr>
<tr class="separator:ga2c593841698b6a60e31a013314bd2b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a74e42890106e8ca124f2aeee49bb8c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga3a74e42890106e8ca124f2aeee49bb8c">globus_poll_nonblocking</a>()</td></tr>
<tr class="separator:ga3a74e42890106e8ca124f2aeee49bb8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a041076a6c38643473d5404050e5937"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga6a041076a6c38643473d5404050e5937">globus_poll</a>()</td></tr>
<tr class="separator:ga6a041076a6c38643473d5404050e5937"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c3e34a2accbaa40af681d4c9209c4a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga6c3e34a2accbaa40af681d4c9209c4a7">globus_signal_poll</a>()</td></tr>
<tr class="separator:ga6c3e34a2accbaa40af681d4c9209c4a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37ed53765dd29c3d5733f34f03b20605"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga37ed53765dd29c3d5733f34f03b20605">globus_callback_register_oneshot</a>(callback_handle,delay_time,callback_func,callback_user_arg)</td></tr>
<tr class="separator:ga37ed53765dd29c3d5733f34f03b20605"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9910c067bdd0b92578979fae90484d2a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga9910c067bdd0b92578979fae90484d2a">globus_callback_register_periodic</a>(callback_handle,delay_time,period,callback_func,callback_user_arg)</td></tr>
<tr class="separator:ga9910c067bdd0b92578979fae90484d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga71543941bfaaf5a7ed94a657bc7786a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga71543941bfaaf5a7ed94a657bc7786a5">globus_callback_register_signal_handler</a>(signum,persist,callback_func,callback_user_arg)</td></tr>
<tr class="separator:ga71543941bfaaf5a7ed94a657bc7786a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Callback Prototypes</h2></td></tr>
<tr class="memitem:gaf9532eb7d40466d5af31fe6ba2b9a6a3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a> )(void *user_arg)</td></tr>
<tr class="separator:gaf9532eb7d40466d5af31fe6ba2b9a6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Oneshot Callbacks</h2></td></tr>
<tr class="memitem:ga5dcf1ecca93ff8b31ba78768eed2f9ca"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga5dcf1ecca93ff8b31ba78768eed2f9ca">globus_callback_space_register_oneshot</a> (<a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> *callback_handle, const globus_reltime_t *delay_time, <a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a> callback_func, void *callback_user_arg, <a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)</td></tr>
<tr class="separator:ga5dcf1ecca93ff8b31ba78768eed2f9ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Periodic Callbacks</h2></td></tr>
<tr class="memitem:ga79a7deb3d5706d8944c9778e451d94bd"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd">globus_callback_space_register_periodic</a> (<a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> *callback_handle, const globus_reltime_t *delay_time, const globus_reltime_t *period, <a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a> callback_func, void *callback_user_arg, <a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)</td></tr>
<tr class="separator:ga79a7deb3d5706d8944c9778e451d94bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f9f7b94b22a26b58d9b6f56d174e3dd"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga9f9f7b94b22a26b58d9b6f56d174e3dd">globus_callback_unregister</a> (<a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> callback_handle, <a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a> unregister_callback, void *unreg_arg, globus_bool_t *active)</td></tr>
<tr class="separator:ga9f9f7b94b22a26b58d9b6f56d174e3dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga951428ba6b26aa601f8e3a1ad27bbe70"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga951428ba6b26aa601f8e3a1ad27bbe70">globus_callback_adjust_oneshot</a> (<a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> callback_handle, const globus_reltime_t *new_delay)</td></tr>
<tr class="separator:ga951428ba6b26aa601f8e3a1ad27bbe70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb9d4011d7b006c9d73f4f31c8ea27b2"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#gabb9d4011d7b006c9d73f4f31c8ea27b2">globus_callback_adjust_period</a> (<a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> callback_handle, const globus_reltime_t *new_period)</td></tr>
<tr class="separator:gabb9d4011d7b006c9d73f4f31c8ea27b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Callback Polling</h2></td></tr>
<tr class="memitem:ga85ccba358a78b43b3154ce0cf9404b05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05">globus_callback_space_poll</a> (const globus_abstime_t *timestop, <a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)</td></tr>
<tr class="separator:ga85ccba358a78b43b3154ce0cf9404b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e8d438f31c0be105b32b6f55f32f8f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga9e8d438f31c0be105b32b6f55f32f8f3">globus_callback_signal_poll</a> ()</td></tr>
<tr class="separator:ga9e8d438f31c0be105b32b6f55f32f8f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Miscellaneous</h2></td></tr>
<tr class="memitem:gaeb9a276723b8940a5050dfd55499a42d"><td class="memItemLeft" align="right" valign="top">globus_bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#gaeb9a276723b8940a5050dfd55499a42d">globus_callback_get_timeout</a> (globus_reltime_t *time_left)</td></tr>
<tr class="separator:gaeb9a276723b8940a5050dfd55499a42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga020baf7ac4f7e096c669be1f2607330e"><td class="memItemLeft" align="right" valign="top">globus_bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#ga020baf7ac4f7e096c669be1f2607330e">globus_callback_has_time_expired</a> ()</td></tr>
<tr class="separator:ga020baf7ac4f7e096c669be1f2607330e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad880ae53e75a35941d0d7e3793979058"><td class="memItemLeft" align="right" valign="top">globus_bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__callback__api.html#gad880ae53e75a35941d0d7e3793979058">globus_callback_was_restarted</a> ()</td></tr>
<tr class="separator:gad880ae53e75a35941d0d7e3793979058"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 
<a href="main.html" target="_top">View documentation without frames</a><br>
<a href="index.html" target="_top">View documentation with frames</a><br>
 <h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga1042269f15b8fdfea578e741afc49b79"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_callback_poll</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Poll the global callback space. </p>
<p>Specifies the global space for <a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a>. argument is the timeout</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga2c593841698b6a60e31a013314bd2b1f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_poll_blocking</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Blocking poll of the global callback space. </p>
<p>Specifies that <a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> should poll on the global space with an infinite timeout</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga3a74e42890106e8ca124f2aeee49bb8c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_poll_nonblocking</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Nonblocking poll of the global callback space. </p>
<p>Specifies that <a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> should poll on the global space with an immediate timeout</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga6a041076a6c38643473d5404050e5937"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_poll</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Nonblocking poll of the global callback space. </p>
<p>Specifies that <a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> should poll on the global space with an immediate timeout</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga6c3e34a2accbaa40af681d4c9209c4a7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_signal_poll</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wake up callback polling thread. </p>
<p>Counterpart to <a class="el" href="group__globus__callback__api.html#ga6a041076a6c38643473d5404050e5937" title="Nonblocking poll of the global callback space.">globus_poll()</a>.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga9e8d438f31c0be105b32b6f55f32f8f3" title="Signal the poll.">globus_callback_signal_poll()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga37ed53765dd29c3d5733f34f03b20605"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_callback_register_oneshot</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_handle, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">delay_time, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_func, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_user_arg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a oneshot function in the global callback space. </p>
<p>Specifies the global space for <a class="el" href="group__globus__callback__api.html#ga5dcf1ecca93ff8b31ba78768eed2f9ca" title="Register a oneshot some delay from now.">globus_callback_space_register_oneshot()</a> all other arguments are the same as specified there.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga5dcf1ecca93ff8b31ba78768eed2f9ca" title="Register a oneshot some delay from now.">globus_callback_space_register_oneshot()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga9910c067bdd0b92578979fae90484d2a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_callback_register_periodic</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_handle, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">delay_time, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">period, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_func, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_user_arg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a periodic function in the global callback space. </p>
<p>Specifies the global space for <a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> all other arguments are the same as specified there.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga71543941bfaaf5a7ed94a657bc7786a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define globus_callback_register_signal_handler</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">signum, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">persist, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_func, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">callback_user_arg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a signal handler in the global callback space. </p>
<p>Specifies the global space for <a class="el" href="group__globus__callback__signal.html#ga73dd8a0afb4683a89b38c1c5e02db33e" title="Fire a callback when the specified signal is received.">globus_callback_space_register_signal_handler()</a> all other arguments are the same as specified there.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__signal.html#ga73dd8a0afb4683a89b38c1c5e02db33e" title="Fire a callback when the specified signal is received.">globus_callback_space_register_signal_handler()</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaf9532eb7d40466d5af31fe6ba2b9a6a3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_callback_func_t)(void *user_arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Globus callback prototype. </p>
<p>This is the signature of the function registered with the globus_callback_register_* calls.</p>
<p>If this is a periodic callback, it is guaranteed that the call canNOT be reentered unless globus_thread_blocking_space_will_block() is called (explicitly, or implicitly via <a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0" title="Wait for a condition to be signalled.">globus_cond_wait()</a>). Also, if <a class="el" href="group__globus__callback__api.html#ga9f9f7b94b22a26b58d9b6f56d174e3dd" title="Unregister a callback.">globus_callback_unregister()</a> is called to cancel this periodic from within this callback, it is guaranteed that the callback will NOT be requeued again</p>
<p>If the function will block at all, the user should call <a class="el" href="group__globus__callback__api.html#gaeb9a276723b8940a5050dfd55499a42d" title="Get the amount of time left in a callback.">globus_callback_get_timeout()</a> to see how long this function can safely block or call globus_thread_blocking_space_will_block()</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_arg</td><td>The user argument registered with this callback</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>void</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga5dcf1ecca93ff8b31ba78768eed2f9ca" title="Register a oneshot some delay from now.">globus_callback_space_register_oneshot()</a> </dd>
<dd>
<a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> </dd>
<dd>
globus_thread_blocking_space_will_block() </dd>
<dd>
<a class="el" href="group__globus__callback__api.html#gaeb9a276723b8940a5050dfd55499a42d" title="Get the amount of time left in a callback.">globus_callback_get_timeout()</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga5dcf1ecca93ff8b31ba78768eed2f9ca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_register_oneshot </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> *&#160;</td>
          <td class="paramname"><em>callback_handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const globus_reltime_t *&#160;</td>
          <td class="paramname"><em>delay_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>callback_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_user_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a oneshot some delay from now. </p>
<p>This function registers the callback_func to start some delay_time from now.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_handle</td><td>Storage for a handle. This may be NULL. If it is NOT NULL, you must unregister the callback to reclaim resources.</td></tr>
    <tr><td class="paramname">delay_time</td><td>The relative time from now to fire this callback. If NULL, will fire as soon as possible</td></tr>
    <tr><td class="paramname">callback_func</td><td>the user func to call</td></tr>
    <tr><td class="paramname">callback_user_arg</td><td>user arg that will be passed to callback</td></tr>
    <tr><td class="paramname">space</td><td>The space with which to register this callback</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT</li>
<li>GLOBUS_CALLBACK_ERROR_MEMORY_ALLOC</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3" title="Globus callback prototype.">globus_callback_func_t</a> </dd>
<dd>
<a class="el" href="group__globus__callback__spaces.html" title="  &lt;a href=&quot;main.html&quot; target=&quot;_top&quot;&gt;View documentation without frames&lt;/a&gt;&lt;br&gt; &lt;a href=&quot;index.html&quot; target=&quot;_top&quot;&gt;View documentation with frames&lt;/a&gt;&lt;br&gt; ">Globus Callback Spaces</a> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga79a7deb3d5706d8944c9778e451d94bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_register_periodic </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a> *&#160;</td>
          <td class="paramname"><em>callback_handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const globus_reltime_t *&#160;</td>
          <td class="paramname"><em>delay_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const globus_reltime_t *&#160;</td>
          <td class="paramname"><em>period</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>callback_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_user_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a periodic callback. </p>
<p>This function registers a periodic callback_func to start some delay_time and run every period from then.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_handle</td><td>Storage for a handle. This may be NULL. If it is NOT NULL, you must cancel the periodic to reclaim resources.</td></tr>
    <tr><td class="paramname">delay_time</td><td>The relative time from now to fire this callback. If NULL, will fire the first callback as soon as possible</td></tr>
    <tr><td class="paramname">period</td><td>The relative period of this callback</td></tr>
    <tr><td class="paramname">callback_func</td><td>the user func to call</td></tr>
    <tr><td class="paramname">callback_user_arg</td><td>user arg that will be passed to callback</td></tr>
    <tr><td class="paramname">space</td><td>The space with which to register this callback</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT</li>
<li>GLOBUS_CALLBACK_ERROR_MEMORY_ALLOC</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga9f9f7b94b22a26b58d9b6f56d174e3dd" title="Unregister a callback.">globus_callback_unregister()</a> </dd>
<dd>
<a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3" title="Globus callback prototype.">globus_callback_func_t</a> </dd>
<dd>
<a class="el" href="group__globus__callback__spaces.html">globus_callback_spaces</a> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9f9f7b94b22a26b58d9b6f56d174e3dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_unregister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a>&#160;</td>
          <td class="paramname"><em>callback_handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3">globus_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>unregister_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>unreg_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_bool_t *&#160;</td>
          <td class="paramname"><em>active</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unregister a callback. </p>
<p>This function will cancel a callback and free the resources associcated with the callback handle. If the callback was able to be canceled immediately (or if it has already run), GLOBUS_SUCCESS is returned and it is guaranteed that there are no running instances of the callback.</p>
<p>If the callback is currently running (or unstoppably about to be run), then the callback is prevented from being requeued, but, the 'official' cancel is deferred until the last running instance of the callback returns. If you need to know when the callback is guaranteed to have been canceled, pass an unregister callback.</p>
<p>If you would like to know if you unregistered a callback before it ran, pass storage for a boolean 'active'. This will be GLOBUS_TRUE if callback was running. GLOBUS_FALSE otherwise.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_handle</td><td>the handle received from a globus_callback_space_register_*() call</td></tr>
    <tr><td class="paramname">unregister_callback</td><td>the function to call when the callback has been canceled and there are no running instances of it. This will be delivered to the same space used in the register call.</td></tr>
    <tr><td class="paramname">unreg_arg</td><td>user arg that will be passed to the unregister callback</td></tr>
    <tr><td class="paramname">active</td><td>storage for an indication of whether the callback was running when this call was made</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_CALLBACK_HANDLE</li>
<li>GLOBUS_CALLBACK_ERROR_ALREADY_CANCELED</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> </dd>
<dd>
<a class="el" href="group__globus__callback__api.html#gaf9532eb7d40466d5af31fe6ba2b9a6a3" title="Globus callback prototype.">globus_callback_func_t</a> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga951428ba6b26aa601f8e3a1ad27bbe70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_adjust_oneshot </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a>&#160;</td>
          <td class="paramname"><em>callback_handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const globus_reltime_t *&#160;</td>
          <td class="paramname"><em>new_delay</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adjust the delay of a oneshot callback. </p>
<p>This function allows a user to adjust the delay of a previously registered callback. It is safe to call this within or outside of the callback that is being modified.</p>
<p>Note if the oneshot has already been fired, this function will still return GLOBUS_SUCCESS, but won't affect anything.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_handle</td><td>the handle received from a <a class="el" href="group__globus__callback__api.html#ga5dcf1ecca93ff8b31ba78768eed2f9ca" title="Register a oneshot some delay from now.">globus_callback_space_register_oneshot()</a> call</td></tr>
    <tr><td class="paramname">new_delay</td><td>The new delay from now. If NULL, then callback will be fired as soon as possible.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_CALLBACK_HANDLE</li>
<li>GLOBUS_CALLBACK_ERROR_ALREADY_CANCELED</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="gabb9d4011d7b006c9d73f4f31c8ea27b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_adjust_period </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gab1094a083bf6fc359e01c5d66c436fa0">globus_callback_handle_t</a>&#160;</td>
          <td class="paramname"><em>callback_handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const globus_reltime_t *&#160;</td>
          <td class="paramname"><em>new_period</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adjust the period of a periodic callback. </p>
<p>This function allows a user to adjust the period of a previously registered callback. It is safe to call this within or outside of the callback that is being modified.</p>
<p>This func also allows a user to effectively 'suspend' a periodic callback until another time by passing a period of NULL. The callback can later be resumed by passing in a new period.</p>
<p>Note that the callback will not be fired sooner than 'new_period' from now. A 'suspended' callback must still be unregistered to free its resources.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_handle</td><td>the handle received from a <a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> call</td></tr>
    <tr><td class="paramname">new_period</td><td>The new period. If NULL or globus_i_reltime_infinity, then callback will be 'suspended' as soon as the last running instance of it returns.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_CALLBACK_HANDLE</li>
<li>GLOBUS_CALLBACK_ERROR_ALREADY_CANCELED</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga79a7deb3d5706d8944c9778e451d94bd" title="Register a periodic callback.">globus_callback_space_register_periodic()</a> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga85ccba358a78b43b3154ce0cf9404b05"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void globus_callback_space_poll </td>
          <td>(</td>
          <td class="paramtype">const globus_abstime_t *&#160;</td>
          <td class="paramname"><em>timestop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Poll for ready callbacks. </p>
<p>This function is used to poll for registered callbacks.</p>
<p>For non-threaded builds, callbacks are not/can not be delivered unless this is called. Any call to this can cause callbacks registered with the 'global' space to be fired. Whereas callbacks registered with a user's space will only be delivered when this is called with that space.</p>
<p>For threaded builds, this only needs to be called to poll user spaces with behavior == GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE. The 'global' space and other user spaces are constantly polled in a separate thread. (If it is called in a threaded build for these spaces, it will just yield its thread)</p>
<p>In general, you never need to call this function directly. It is called (when necessary) by <a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0" title="Wait for a condition to be signalled.">globus_cond_wait()</a>. The only case in which a user may wish to call this explicitly is if the application has no aspirations of ever being built threaded.</p>
<p>This function (when not yielding) will block up to timestop or until <a class="el" href="group__globus__callback__api.html#ga9e8d438f31c0be105b32b6f55f32f8f3" title="Signal the poll.">globus_callback_signal_poll()</a> is called by one of the fired callbacks. It will always try and kick out ready callbacks, regardless of the timestop.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timestop</td><td>The time to block until. If this is NULL or less than the cuurent time, an attempt to fire only ready callbacks is made (no blocking).</td></tr>
    <tr><td class="paramname">space</td><td>The callback space to poll. Note: regardless of what space is passed here, the 'global' space is also always polled.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>void</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__spaces.html" title="  &lt;a href=&quot;main.html&quot; target=&quot;_top&quot;&gt;View documentation without frames&lt;/a&gt;&lt;br&gt; &lt;a href=&quot;index.html&quot; target=&quot;_top&quot;&gt;View documentation with frames&lt;/a&gt;&lt;br&gt; ">Globus Callback Spaces</a> </dd>
<dd>
<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> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9e8d438f31c0be105b32b6f55f32f8f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void globus_callback_signal_poll </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signal the poll. </p>
<p>This function signals <a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> that something has changed and it should return to its caller as soon as possible.</p>
<p>In general, you never need to call this function directly. It is called (when necessary) by <a class="el" href="group__globus__cond.html#ga05a56b1f671782a6a2c0d2c72292dd47" title="Signal a condition to a thread.">globus_cond_signal()</a> or globus_cond_broadcast. The only case in which a user may wish to call this explicitly is if the application has no aspirations of ever being built threaded.</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>void</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__callback__api.html#ga85ccba358a78b43b3154ce0cf9404b05" title="Poll for ready callbacks.">globus_callback_space_poll()</a> </dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="gaeb9a276723b8940a5050dfd55499a42d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_bool_t globus_callback_get_timeout </td>
          <td>(</td>
          <td class="paramtype">globus_reltime_t *&#160;</td>
          <td class="paramname"><em>time_left</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the amount of time left in a callback. </p>
<p>This function retrieves the remaining time a callback is allowed to run. If a callback has already timed out, time_left will be set to zero and GLOBUS_TRUE returned. This function is intended to be called within a callback's stack, but is harmless to call anywhere (will return GLOBUS_FALSE and an infinite time_left)</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">time_left</td><td>storage for the remaining time.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_FALSE if time remaining</li>
<li>GLOBUS_TRUE if already timed out </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="ga020baf7ac4f7e096c669be1f2607330e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_bool_t globus_callback_has_time_expired </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>See if there is remaining time in a callback. </p>
<p>This function returns GLOBUS_TRUE if the running time of a callback has already expired. This function is intended to be called within a callback's stack, but is harmless to call anywhere (will return GLOBUS_FALSE)</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_FALSE if time remaining</li>
<li>GLOBUS_TRUE if already timed out </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</div>
</div>
<a class="anchor" id="gad880ae53e75a35941d0d7e3793979058"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_bool_t globus_callback_was_restarted </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>See if a callback has been restarted. </p>
<p>If the callback is a oneshot, this merely means the callback called globus_thread_blocking_space_will_block (or <a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0" title="Wait for a condition to be signalled.">globus_cond_wait()</a> at some point.</p>
<p>For a periodic, it signifies the same and also that the periodic has been requeued. This means that the callback function may be reentered if the period is short enough (on a threaded build)</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>GLOBUS_FALSE if not restarted</li>
<li>GLOBUS_TRUE if restarted </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__globus__thread.html#ga8df3fff10bd599db534519b6907e1922">globus_i_am_only_thread()</a>.</p>

</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>