forked from HDFGroup/hdf5
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP on updating thread-related code in the library.
Includes, but not limited to: - Bring the recursive readers/writer lock (RRWL) from the 1.12 branch to develop - Pulls together all the thread-related code into the H5TS package, removing sprawl and providing private API calls for other packages to use for e.g. acquiring thread-local variables, etc. - Breaks H5TS package into several source files, instead of a single one, with large ifdef's. - Added FUNC_ENTER_API_REENTER / FUNC_LEAVE_API_REENTER macros around all "developer" callback routines (e.g., the routines in H5VLdevelop.h, H5FDdevelop.h, etc.) that can be used for pass-through VOL connectors, stackable VFDs, etc., so they can have different thread-reentry behavior, like not re-acquiring the global lock. - Moved all the thread-related tests into one test binary (test/ttsafe), with a "typical" use of test testhdf5.h macros. This now includes the previously standalone thread_id test, and the tests for the RRWL. - Added API context push/pop to tests that directly called routines that use FUNC_ENTER_API_REENTER / FUNC_LEAVE_API_REENTER. Planned: - Remove Mercury threading package, moving all usage back to single, HDF5-based thread-related wrappers, etc. - Remove requirement for PTHREAD_MUTEX_ADAPTIVE_NP, pthread_condattr_setclock(), and CLOCK_MONOTONIC_COARSE, as they are built into the Mercury thread- related wrappers, but we don't need them. Not related to threading, but also in this branch currently: - Adds support for detecting and using the __builtin_expect() compiler hint, to let the compiler know branches that are likely/unlikely to be taken. Wrapped inside new H5_LIKELY/H5_UNLIKELY macros. Signed-off-by: Quincey Koziol <[email protected]>
- Loading branch information
Showing
71 changed files
with
6,667 additions
and
2,384 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.