[Hdf-forum] HDF5 -- multithreading support or not?

Dana Robinson derobins at hdfgroup.org
Mon Aug 29 10:29:07 CDT 2016


Hi Isaac,

It sounds like you want to call H5Fclose, not H5close. Try just closing the file and not calling H5close at all. Does that work?

Dana

From: Hdf-forum [mailto:hdf-forum-bounces at lists.hdfgroup.org] On Behalf Of Isaac Gerg
Sent: Monday, August 29, 2016 11:25 AM
To: HDF Users Discussion List <hdf-forum at lists.hdfgroup.org>
Subject: Re: [Hdf-forum] HDF5 -- multithreading support or not?

Hi Dana,

I am not sure I understand your question.  In each thread, I open an hdf file, read from it, and then call H5close().

> Normally, you don't need to call H5close() explicitly, btw. It will be called when the program exits.

I did not know about this.

In reading the documentation...

> "This function is generally called when the application calls exit(), but may be called earlier in the event of an emergency shutdown or out of a desire to free all resources used by the HDF5 library."

To me, "generally" implies that h5close() is not guaranteed to be called in exit() OR that its preferred by hdf library that the user calls H5close() right before calling exit().

Thank you,
Isaac

On Mon, Aug 29, 2016 at 11:14 AM, Dana Robinson <derobins at hdfgroup.org<mailto:derobins at hdfgroup.org>> wrote:
Hi Isaac,

Are you calling H5close() from one thread and then expecting the other thread to make HDF5 calls? Because HDF5 calls are unlikely to be successful after you shut the library down :)

Normally, you don't need to call H5close() explicitly, btw. It will be called when the program exits.

From the reference manual (https://www.hdfgroup.org/HDF5/doc/RM/RM_H5.html#Library-Close ):

"This function is generally called when the application calls exit(), but may be called earlier in the event of an emergency shutdown or out of a desire to free all resources used by the HDF5 library."

Dana Robinson
Software Engineer
The HDF Group

From: Hdf-forum [mailto:hdf-forum-bounces at lists.hdfgroup.org<mailto:hdf-forum-bounces at lists.hdfgroup.org>] On Behalf Of Isaac Gerg
Sent: Friday, August 26, 2016 6:31 PM
To: hdf-forum at lists.hdfgroup.org<mailto:hdf-forum at lists.hdfgroup.org>
Subject: [Hdf-forum] HDF5 -- multithreading support or not?

Hi Folks,

I am a need for a windows application to have two threads read the same hdf5 file as read-only.  I have searched over months on the internet trying to determine if HDF5 can surely handle this case and have found conflicting results.

I have built a test in C++, using the hdf5 C API, to determine if the read is possible.  The test occasional segfaults on H5Close().  I am trying to determine if the segfault is due to HDF5 or my own error.

TL;DR - can HDF5 on windows support having 2 threads read from the same file as online documentation seems to be inconsistent.

Thanks in advance,
Isaac

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum at lists.hdfgroup.org<mailto:Hdf-forum at lists.hdfgroup.org>
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hdfgroup.org/pipermail/hdf-forum_lists.hdfgroup.org/attachments/20160829/5fbc9327/attachment-0001.html>


More information about the Hdf-forum mailing list