A "thread-safe" version of HDF5 is one that can be called from any
thread of a multi-threaded program. Any calls to HDF5 can be
made in any order, and each individual HDF5 call will perform correctly.
Currently, only the first level of thread-safety has been added to HDF5.
This version serializes the API suitable for use in a multi-threaded
application but does not provide any level of concurrency.
The HDF5 library can be configured to be thread-safe (on a very large
scale) by specifying the --enable-threadsafe and --with-pthread=DIR
flags when configuring:
./configure --enable-threadsafe --with-pthread=DIR
For information on how thread-safety is currently implemented in HDF5, see:
/HDF5/doc/TechNotes/ThreadSafeLibrary.html
We are interested in learning how you use or intend to use thread-safety with
regards to HDF5 before we implement the next level of thread-safety.
Please send any comments or suggestions to help @ hdfgroup . org.
- Paper on Thread Safe HDF5
by Robb Matzke
- Describes what thread-safety means in regards to HDF5.
Discusses issues and an implementation plan. Although it is
an old paper (1999) the information in it still pertains.