herr_t H5Pset_metadata_read_attempts(
hid_t plist_id,
unsigned attempts
)
H5Pset_metadata_read_attempts
sets the number of
reads that the library will try when reading checksummed metadata
in an HDF5 file opened with SWMR access. When reading such metadata,
the library will compare the checksum computed for the metadata
just read with the checksum stored within the piece of checksum.
When performing SWMR operations on a file, the checksum check might
fail when the library reads data on a system that is not atomic.
To remedy such situations, the library will repeatedly read the
piece of metadata until the check passes or finally fails the read
when the allowed number of attempts is reached.
The number of read attempts used by the library will depend on how the file is opened and whether the user sets the number of read attempts via this routine:
hid_t plist_id
|
IN: Identifier for a file access property list. |
unsigned attempts
|
IN: The number of read attempts.
Must be a value greater than 0. |
When the input property list is not a file access property list.
When the library is unable to set the number of read attempts in the file access property list.
/* Create a copy of file access property list */ fapl = H5Pcreate(H5P_FILE_ACCESS); /* Set the # of read attempts */ H5Pset_metadata_read_attempts(fapl, 20); /* Open the file with SWMR access and the non-default file access property list */ fid = H5Fopen(FILE, (H5F_ACC_RDONLY | H5F_ACC_SWMR_READ), fapl); /* Get the file's file access roperty list */ file_fapl = H5Fget_access_plist(fid); /* Retrieve the # of read attempts from the file's file access property list */ H5Pget_metadata_read_attempts(file_fapl, &attempts); /* * The value returned in "attempts" will be 20. * The library will use 20 as the number of read attempts * when reading checksummed metadata in the file */ /* Close the property list */ H5Pclose(fapl); H5Pclose(file_fapl); /* Close the file */ H5Fclose(fid);
/* Create a copy of file access property list */ fapl = H5Pcreate(H5P_FILE_ACCESS); /* Set the # of read attempts */ H5Pset_metadata_read_attempts(fapl, 20); /* Open the file with SWMR access and the non-default file access property list */ fid = H5Fopen(FILE, H5F_ACC_RDONLY, fapl); /* Get the file's file access roperty list */ file_fapl = H5Fget_access_plist(fid); /* Retrieve the # of read attempts from the file's file access property list */ H5Pget_metadata_read_attempts(file_fapl, &attempts); /* * The value returned in "attempts" will be 1 (default for non-SWMR access). * The library will use 1 as the number of read attempts * when reading checksummed metadata in the file */ /* Close the property lists */ H5Pclose(fapl); H5Pclose(file_fapl); /* Close the file */ H5Fclose(fid);
H5Pget_metadata_read_attempts
H5Fget_metadata_read_retries_info
Release | Change |
1.10.0 | C function introduced with this release. |