VOL-Async: Debugging Async operation failures

This is not the case. H5ESwait() does not set num_in_progress or op_failed to something like 0 or False to indicate no failures have happened, it just leaves them to their default values. As I had not initialized the values, whatever random value was printed and interpreted, causing me to suspect an operation failure. This is also why there sometimes would be 0 failures, when the random value in memory happened to be 0.

Note that H5ESwait() should be initializing those values to 0 and false (see hdf5/src/H5ES.c at develop · HDFGroup/hdf5 · GitHub and hdf5/src/H5ESint.c at develop · HDFGroup/hdf5 · GitHub), so if it’s not we should investigate that. Off the top of my head, the only way that I can think of for those to not be initialized is if your error stack ID passed in to H5ESwait() is the value 0, which maps to the H5ES_NONE macro and would cause the function to act as a no-op.

Either way, I think this experimentation gives us valuable information about how we can make the documentation better here.