HDF5
1.15.0
API Reference
|
Event Set Interface.
This interface can only be used with the HDF5 VOL connectors that enable the asynchronous feature in HDF5. The native HDF5 library has only synchronous operations.
HDF5 VOL connectors with support for asynchronous operations:
Functions | |
hid_t | H5EScreate (void) |
Creates an event set. More... | |
herr_t | H5ESwait (hid_t es_id, uint64_t timeout, size_t *num_in_progress, hbool_t *err_occurred) |
Waits for operations in event set to complete. More... | |
herr_t | H5EScancel (hid_t es_id, size_t *num_not_canceled, hbool_t *err_occurred) |
Attempt to cancel operations in an event set. More... | |
herr_t | H5ESget_count (hid_t es_id, size_t *count) |
Retrieves number of events in an event set. More... | |
herr_t | H5ESget_op_counter (hid_t es_id, uint64_t *counter) |
Retrieves the accumulative operation counter for an event set. More... | |
herr_t | H5ESget_err_status (hid_t es_id, hbool_t *err_occurred) |
Checks for failed operations. More... | |
herr_t | H5ESget_err_count (hid_t es_id, size_t *num_errs) |
Retrieves the number of failed operations. More... | |
herr_t | H5ESget_err_info (hid_t es_id, size_t num_err_info, H5ES_err_info_t err_info[], size_t *err_cleared) |
Retrieves information about failed operations. More... | |
herr_t | H5ESfree_err_info (size_t num_err_info, H5ES_err_info_t err_info[]) |
Convenience routine to free an array of H5ES_err_info_t structs. More... | |
herr_t | H5ESregister_insert_func (hid_t es_id, H5ES_event_insert_func_t func, void *ctx) |
Registers a callback to invoke when a new operation is inserted into an event set. More... | |
herr_t | H5ESregister_complete_func (hid_t es_id, H5ES_event_complete_func_t func, void *ctx) |
Registers a callback to invoke when an operation completes within an event set. More... | |
herr_t | H5ESclose (hid_t es_id) |
Terminates access to an event set. More... | |
Attempt to cancel operations in an event set.
[in] | es_id | Event set identifier |
[out] | num_not_canceled | The number of events not canceled |
[out] | err_occurred | Status indicating if error is present in the event set |
H5EScancel() attempts to cancel operations in an event set specified by es_id
. H5ES_NONE is a valid value for es_id
, but functions as a no-op.
Terminates access to an event set.
[in] | es_id | Event set identifier |
H5ESclose() terminates access to an event set specified by es_id
.
hid_t H5EScreate | ( | void | ) |
Creates an event set.
H5EScreate() creates a new event set and returns a corresponding event set identifier.
herr_t H5ESfree_err_info | ( | size_t | num_err_info, |
H5ES_err_info_t | err_info[] | ||
) |
Convenience routine to free an array of H5ES_err_info_t structs.
[in] | num_err_info | The number of elements in err_info array |
[in] | err_info | Array of structures |
Retrieves number of events in an event set.
[in] | es_id | Event set identifier |
[out] | count | The number of events in the event set |
H5ESget_count() retrieves number of events in an event set specified by es_id
.
Retrieves the number of failed operations.
[in] | es_id | Event set identifier |
[out] | num_errs | Number of errors |
H5ESget_err_count() retrieves the number of failed operations in an event set specified by es_id
.
The function does not wait for active operations to complete, so count may not include all failures.
herr_t H5ESget_err_info | ( | hid_t | es_id, |
size_t | num_err_info, | ||
H5ES_err_info_t | err_info[], | ||
size_t * | err_cleared | ||
) |
Retrieves information about failed operations.
[in] | es_id | Event set identifier |
[in] | num_err_info | The number of elements in err_info array |
[out] | err_info | Array of structures |
[out] | err_cleared | Number of cleared errors |
H5ESget_err_info() retrieves information about failed operations in an event set specified by es_id
. The strings retrieved for each error info must be released by calling H5free_memory().
Below is the description of the H5ES_err_info_t structure:
(Click on a enumerator, field, or type for more information.)
Checks for failed operations.
[in] | es_id | Event set identifier |
[out] | err_occurred | Status indicating if error is present in the event set |
H5ESget_err_status() checks if event set specified by es_id has failed operations.
Retrieves the accumulative operation counter for an event set.
[in] | es_id | Event set identifier |
[out] | counter | The accumulative counter value for an event set |
H5ESget_op_counter() retrieves the current accumulative count of event set operations since the event set creation of es_id
.
herr_t H5ESregister_complete_func | ( | hid_t | es_id, |
H5ES_event_complete_func_t | func, | ||
void * | ctx | ||
) |
Registers a callback to invoke when an operation completes within an event set.
[in] | es_id | Event set identifier |
[in] | func | The completion function to register |
[in] | ctx | User-specified information (context) to pass to func |
Only one complete callback can be registered for each event set. Registering a new callback will replace the existing one. H5ES_NONE is a valid value for 'es_id', but functions as a no-op
herr_t H5ESregister_insert_func | ( | hid_t | es_id, |
H5ES_event_insert_func_t | func, | ||
void * | ctx | ||
) |
Registers a callback to invoke when a new operation is inserted into an event set.
[in] | es_id | Event set identifier |
[in] | func | The insert function to register |
[in] | ctx | User-specified information (context) to pass to func |
Only one insert callback can be registered for each event set. Registering a new callback will replace the existing one. H5ES_NONE is a valid value for 'es_id', but functions as a no-op
Waits for operations in event set to complete.
[in] | es_id | Event set identifier |
[in] | timeout | Total time in nanoseconds to wait for all operations in the event set to complete |
[out] | num_in_progress | The number of operations still in progress |
[out] | err_occurred | Flag if an operation in the event set failed |
H5ESwait() waits for operations in an event set es_id
to wait with timeout
.
Timeout value is in nanoseconds, and is for the H5ESwait() call and not for each individual operation in the event set. For example, if "10" is passed as a timeout value and the event set waited 4 nanoseconds for the first operation to complete, the remaining operations would be allowed to wait for at most 6 nanoseconds more, i.e., the timeout value used across all operations in the event set until it reaches 0, then any remaining operations are only checked for completion, not waited on.
This call will stop waiting on operations and will return immediately if an operation fails. If a failure occurs, the value returned for the number of operations in progress may be inaccurate.