---
name: "globus_callback.h"
section: "3"
platform: "linux"
package: "libglobus-common-doc"
version: "18.14-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_callback.h"
---

# globus\_callback.h(3)

Globus Callback API.

## NAME

globus\_callback.h - Globus Callback API.

## SYNOPSIS

`#include 'globus_common_include.h'`\
 `#include 'globus_module.h'`\
 `#include 'globus_time.h'`\

### Macros

\#define **GLOBUS\_CALLBACK\_MODULE**\
 Module descriptor.  #define **GLOBUS\_POLL\_MODULE**\
 Module descriptor.

**Convenience Macros**\

\#define **globus\_callback\_poll**(a)\
 Poll the global callback space.  #define **globus\_poll\_blocking**()\
 Blocking poll of the global callback space.  #define **globus\_poll\_nonblocking**()\
 Nonblocking poll of the global callback space.  #define **globus\_poll**()\
 Nonblocking poll of the global callback space.  #define **globus\_signal\_poll**()\
 Wake up callback polling thread.  #define **globus\_callback\_register\_oneshot**( callback\_handle,  delay\_time,  callback\_func,  callback\_user\_arg)\
 Register a oneshot function in the global callback space.  #define **globus\_callback\_register\_periodic**( callback\_handle,  delay\_time,  period,  callback\_func,  callback\_user\_arg)\
 Register a periodic function in the global callback space.  #define **globus\_callback\_register\_signal\_handler**( signum,  persist,  callback\_func,  callback\_user\_arg)\
 Register a signal handler in the global callback space.

### Typedefs

typedef int **globus\_callback\_handle\_t**\
 Periodic callback handle.  typedef int **globus\_callback\_space\_t**\
 Callback space handle.  typedef struct globus\_l\_callback\_space\_attr\_s \* **globus\_callback\_space\_attr\_t**\
 Callback space attribute.

**Callback Prototypes**\

typedef void(\* **globus\_callback\_func\_t**) (void \*user\_arg)\
 Globus callback prototype.

### Enumerations

enum **globus\_callback\_error\_type\_t** { **GLOBUS\_CALLBACK\_ERROR\_INVALID\_CALLBACK\_HANDLE** = 1024, **GLOBUS\_CALLBACK\_ERROR\_INVALID\_SPACE**, **GLOBUS\_CALLBACK\_ERROR\_MEMORY\_ALLOC**, **GLOBUS\_CALLBACK\_ERROR\_INVALID\_ARGUMENT**, **GLOBUS\_CALLBACK\_ERROR\_ALREADY\_CANCELED**, **GLOBUS\_CALLBACK\_ERROR\_NO\_ACTIVE\_CALLBACK** }\
 Error types.

### Functions

**Oneshot Callbacks**\

**globus\_result\_t** **globus\_callback\_space\_register\_oneshot** (**globus\_callback\_handle\_t** \*callback\_handle, const globus\_reltime\_t \*delay\_time, **globus\_callback\_func\_t** callback\_func, void \*callback\_user\_arg, **globus\_callback\_space\_t** space)\
 Register a oneshot some delay from now.

**Periodic Callbacks**\

**globus\_result\_t** **globus\_callback\_space\_register\_periodic** (**globus\_callback\_handle\_t** \*callback\_handle, const globus\_reltime\_t \*delay\_time, const globus\_reltime\_t \*period, **globus\_callback\_func\_t** callback\_func, void \*callback\_user\_arg, **globus\_callback\_space\_t** space)\
 Register a periodic callback.  **globus\_result\_t** **globus\_callback\_unregister** (**globus\_callback\_handle\_t** callback\_handle, **globus\_callback\_func\_t** unregister\_callback, void \*unreg\_arg, **globus\_bool\_t** \*active)\
 Unregister a callback.  **globus\_result\_t** **globus\_callback\_adjust\_oneshot** (**globus\_callback\_handle\_t** callback\_handle, const globus\_reltime\_t \*new\_delay)\
 Adjust the delay of a oneshot callback.  **globus\_result\_t** **globus\_callback\_adjust\_period** (**globus\_callback\_handle\_t** callback\_handle, const globus\_reltime\_t \*new\_period)\
 Adjust the period of a periodic callback.

**Callback Polling**\

void **globus\_callback\_space\_poll** (const globus\_abstime\_t \*timestop, **globus\_callback\_space\_t** space)\
 Poll for ready callbacks.  void **globus\_callback\_signal\_poll** ()\
 Signal the poll.

### Miscellaneous

\#define **GLOBUS\_CALLBACK\_GLOBAL\_SPACE**\
 Global callback space.  #define **GLOBUS\_SIGNAL\_INTERRUPT**\
 enum **globus\_callback\_space\_behavior\_t** { **GLOBUS\_CALLBACK\_SPACE\_BEHAVIOR\_SINGLE**, **GLOBUS\_CALLBACK\_SPACE\_BEHAVIOR\_SERIALIZED**, **GLOBUS\_CALLBACK\_SPACE\_BEHAVIOR\_THREADED** }\
 Callback space behaviors describe how a space behaves.  **globus\_bool\_t** **globus\_callback\_get\_timeout** (globus\_reltime\_t \*time\_left)\
 Get the amount of time left in a callback.  **globus\_bool\_t** **globus\_callback\_has\_time\_expired** ()\
 See if there is remaining time in a callback.  **globus\_bool\_t** **globus\_callback\_was\_restarted** ()\
 See if a callback has been restarted.  **globus\_result\_t** **globus\_callback\_space\_init** (**globus\_callback\_space\_t** \*space, **globus\_callback\_space\_attr\_t** attr)\
 Initialize a user space.  **globus\_result\_t** **globus\_callback\_space\_reference** (**globus\_callback\_space\_t** space)\
 Take a reference to a space.  **globus\_result\_t** **globus\_callback\_space\_destroy** (**globus\_callback\_space\_t** space)\
 Destroy a reference to a user space.  **globus\_result\_t** **globus\_callback\_space\_attr\_init** (**globus\_callback\_space\_attr\_t** \*attr)\
 Initialize a space attr.  **globus\_result\_t** **globus\_callback\_space\_attr\_destroy** (**globus\_callback\_space\_attr\_t** attr)\
 Destroy a space attr.  **globus\_result\_t** **globus\_callback\_space\_attr\_set\_behavior** (**globus\_callback\_space\_attr\_t** attr, **globus\_callback\_space\_behavior\_t** behavior)\
 Set the behavior of a space.  **globus\_result\_t** **globus\_callback\_space\_attr\_get\_behavior** (**globus\_callback\_space\_attr\_t** attr, **globus\_callback\_space\_behavior\_t** \*behavior)\
 Get the behavior associated with an attr.  **globus\_result\_t** **globus\_callback\_space\_get** (**globus\_callback\_space\_t** \*space)\
 Retrieve the space of a currently running callback.  int **globus\_callback\_space\_get\_depth** (**globus\_callback\_space\_t** space)\
 Retrieve the current nesting level of a space.  **globus\_bool\_t** **globus\_callback\_space\_is\_single** (**globus\_callback\_space\_t** space)\
 See if the specified space is a single threaded behavior space.  **globus\_result\_t** **globus\_callback\_space\_register\_signal\_handler** (int signum, **globus\_bool\_t** persist, **globus\_callback\_func\_t** callback\_func, void \*callback\_user\_arg, **globus\_callback\_space\_t** space)\
 Fire a callback when the specified signal is received.  **globus\_result\_t** **globus\_callback\_unregister\_signal\_handler** (int signum, **globus\_callback\_func\_t** unregister\_callback, void \*unreg\_arg)\
 Unregister a signal handling callback.  void **globus\_callback\_add\_wakeup\_handler** (void(\*wakeup)(void \*), void \*user\_arg)\
 Register a wakeup handler with callback library.

## Detailed Description

Globus Callback API.

## Author

Generated automatically by Doxygen for globus\_common from the source code.
