Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new multithreaded concurrency configuration #5015

Merged
merged 627 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
627 commits
Select commit Hold shift + click to select a range
ac6e962
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol May 31, 2024
c912b32
Add comment to trigger CI testing
qkoziol Jun 1, 2024
c1fd611
Pare down CI testing while debugging
qkoziol Jun 1, 2024
35cb735
Add debugging output
qkoziol Jun 1, 2024
f0e9444
Committing clang-format changes
github-actions[bot] Jun 1, 2024
84636ba
Trim down workflows
qkoziol Jun 2, 2024
c375801
Fix build
qkoziol Jun 2, 2024
f871a21
Fix build
qkoziol Jun 2, 2024
e894410
Fix build
qkoziol Jun 2, 2024
23b0ff6
Add testing output
qkoziol Jun 2, 2024
47f7b3b
More build output
qkoziol Jun 2, 2024
120571b
R/W lock output
qkoziol Jun 2, 2024
b5ebf19
More debug output
qkoziol Jun 2, 2024
f21ef34
Debug output
qkoziol Jun 2, 2024
5c712c7
Debug output in mutex
qkoziol Jun 2, 2024
9c64474
Correct atomic init's in barrier
qkoziol Jun 2, 2024
2f4d0ab
Remove debug output
qkoziol Jun 2, 2024
acda444
Revert CI changes
qkoziol Jun 2, 2024
30992ab
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 2, 2024
1956de7
Working first draft of "prepare / restore" from user callbacks
qkoziol Jun 2, 2024
7641fe8
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 3, 2024
febca66
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 3, 2024
fb78cb1
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 3, 2024
faba6d9
Committing clang-format changes
github-actions[bot] Jun 3, 2024
76f91a9
Add prepare/restore wrappers around VFD callbacks
qkoziol Jun 3, 2024
522b61f
Committing clang-format changes
github-actions[bot] Jun 3, 2024
d006a78
Add prepare/restore wrappers around user-defined link callbacks
qkoziol Jun 3, 2024
a8ebe75
Committing clang-format changes
github-actions[bot] Jun 3, 2024
abe665f
Add prepare/restore wrappers around application datatype conversion c…
qkoziol Jun 3, 2024
da559fc
Fix --enable-threadsafe builds
qkoziol Jun 3, 2024
53bd144
Add --enable-concurrency builds to CI
qkoziol Jun 3, 2024
3d070b3
Committing clang-format changes
github-actions[bot] Jun 4, 2024
449eefc
Fix typos
qkoziol Jun 4, 2024
8b6a002
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 4, 2024
5956567
Add prepare/restore wrappers to property class & property objects
qkoziol Jun 4, 2024
8fb0ab3
Committing clang-format changes
github-actions[bot] Jun 4, 2024
9a3d00c
Mark libinit & libterm booleans with H5_DLLVAR
qkoziol Jun 4, 2024
0541e9e
Fix H5_DLLVAR for libinit & libterm
qkoziol Jun 4, 2024
654eeac
Add prepare/restore wrappers around property class and list iteration
qkoziol Jun 4, 2024
6b3de74
Add prepare/restore wrappers around I/O filters
qkoziol Jun 4, 2024
d7c60fe
Move libinit & libterm declarations into extern 'C' block
qkoziol Jun 4, 2024
0342ec6
Committing clang-format changes
github-actions[bot] Jun 4, 2024
df2d5e1
Add prepare/restore wrappers around dataset scatter & gather callbacks
qkoziol Jun 4, 2024
41a9ccf
Add prepare/restore wrappers around chunk iteration callback
qkoziol Jun 4, 2024
12f29b7
Add prepare/restore wrappers around H5I callbacks
qkoziol Jun 4, 2024
3adbe90
Add prepare/restore wrappers around attribute iteration callbacks
qkoziol Jun 4, 2024
ec62652
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 5, 2024
034c855
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 5, 2024
c5ec61a
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 5, 2024
bc8f2a2
Committing clang-format changes
github-actions[bot] Jun 5, 2024
9876853
Add prepare/restore wrappers around H5O visit callbacks
qkoziol Jun 5, 2024
996e203
Add prepare/restore wrappers around event set callbacks
qkoziol Jun 5, 2024
f772256
Add prepare/restore wrappers around file image callbacks
qkoziol Jun 5, 2024
fbf1502
Add prepare/restore wrappers around object fluch callback
qkoziol Jun 5, 2024
7ca7ae4
Add prepare/restore wrappers around external link traversal callback
qkoziol Jun 5, 2024
cda59de
Add prepare/restore wrappers around vlen datatype memory alloc & free…
qkoziol Jun 5, 2024
6e9ffb9
Add prepare/restore wrappers around committed datatype search callback
qkoziol Jun 5, 2024
a05a364
Add prepare/restore wrappers around datatype conversion exception cal…
qkoziol Jun 5, 2024
d79f09d
Add prepare/restore wrappers around atclose callback
qkoziol Jun 5, 2024
c4d61b9
Add prepare/restore wrappers around VFD perform init call
qkoziol Jun 5, 2024
af1d90d
Add prepare/restore wrappers around filter status callback
qkoziol Jun 5, 2024
fdc614a
Committing clang-format changes
github-actions[bot] Jun 5, 2024
de4be96
Track sleeping workers
qkoziol Jun 6, 2024
ec68fb4
Committing clang-format changes
github-actions[bot] Jun 6, 2024
7871031
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 6, 2024
1aedb39
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 6, 2024
b72a4c3
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 6, 2024
d1db8aa
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 7, 2024
b49be63
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 7, 2024
c1c98be
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 7, 2024
ba0ed23
Merge branch 'develop' into threading_updates
derobins Jun 8, 2024
66beee8
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 8, 2024
0d32262
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 8, 2024
3ad494f
Add lightweight semaphores, along with optimizations
qkoziol Jun 11, 2024
36c8ff0
Committing clang-format changes
github-actions[bot] Jun 11, 2024
dc33afb
Fix C++ builds
qkoziol Jun 11, 2024
b356346
Fix spelling error
qkoziol Jun 11, 2024
9fbc4dc
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 13, 2024
e9a784c
Add emulated semaphore and regression tests for semaphores
qkoziol Jun 14, 2024
1a5bbd5
Add rest of files
qkoziol Jun 14, 2024
16ab253
Switch thread pools to use semaphore and remove MACH case for semapho…
qkoziol Jun 17, 2024
41ab4b8
Committing clang-format changes
github-actions[bot] Jun 17, 2024
8d21941
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 17, 2024
da9b6f0
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 17, 2024
afbdeba
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 17, 2024
762f7d7
Fix C++ build
qkoziol Jun 17, 2024
0a9e269
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 17, 2024
d5642c0
Move rest of hot routines inline
qkoziol Jun 17, 2024
23ab433
Correct warnings
qkoziol Jun 17, 2024
c408b25
Committing clang-format changes
github-actions[bot] Jun 17, 2024
1b2861a
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 17, 2024
1dc3983
Committing clang-format changes
github-actions[bot] Jun 17, 2024
9755a27
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 18, 2024
c98f90a
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 18, 2024
fc8f94b
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 18, 2024
9190f91
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 25, 2024
3b4016a
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 25, 2024
7474b4d
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 25, 2024
58cbc5c
Add BEFORE/AFTER user callback wrappers to missed VFD callbacks
qkoziol Jun 26, 2024
76ee4ea
Committing clang-format changes
github-actions[bot] Jun 26, 2024
6eef1a2
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jun 27, 2024
d2ee4cd
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jun 27, 2024
015c029
Committing clang-format changes
github-actions[bot] Jun 27, 2024
909015c
Committing clang-format changes
github-actions[bot] Jun 27, 2024
9e58936
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jun 27, 2024
218f662
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 2, 2024
981ec35
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 2, 2024
06bc0a8
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 2, 2024
dbe90c8
Small optimizations to thread pools
qkoziol Jul 2, 2024
7746097
Committing clang-format changes
github-actions[bot] Jul 2, 2024
8ced6e4
Rename routines for acquiring & releasing API mutex
qkoziol Jul 5, 2024
9725b38
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 5, 2024
d4fe1dd
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 5, 2024
cf94f43
Optimize setting & getting thread-specific keys
qkoziol Jul 5, 2024
35bd789
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 5, 2024
712d4e0
Committing clang-format changes
github-actions[bot] Jul 5, 2024
b16c9cb
Committing clang-format changes
github-actions[bot] Jul 6, 2024
0aae351
Committing clang-format changes
github-actions[bot] Jul 6, 2024
b2ed8f9
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 12, 2024
476d0f0
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 12, 2024
aaa7868
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 12, 2024
2cacd25
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 15, 2024
b43305e
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 15, 2024
95d6a8c
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 15, 2024
a7da18c
Fix typo in configure check
qkoziol Jul 15, 2024
67551c6
Fix check for threads in subfiling check
qkoziol Jul 16, 2024
847f473
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 16, 2024
14cce82
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 16, 2024
714437f
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 16, 2024
421378a
Redistribute code back to threading_updates branch
qkoziol Jul 17, 2024
8cf564c
Redistribute code between this branch and the non_rec_rwlock branch
qkoziol Jul 17, 2024
0a40eb8
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 17, 2024
7778b78
Committing clang-format changes
github-actions[bot] Jul 17, 2024
8c47af8
Remove voidp atomics
qkoziol Jul 17, 2024
92d8ca7
Fix typo
qkoziol Jul 17, 2024
a3e7bfa
Redistribute code between this branch and the non_rec_rwlock branch
qkoziol Jul 17, 2024
e3dd94f
Fixed usage issue with FindZLIB.cmake module (#4655)
byrnHDF Jul 16, 2024
7d0e3a3
Eliminate more H5E_BEGIN/END_TRY macros and H5E_clear_stack() calls (…
qkoziol Jul 17, 2024
0d55938
Make VOL CI run against current branch (#4654)
mattjala Jul 17, 2024
92eb3d3
Committing clang-format changes
github-actions[bot] Jul 17, 2024
7b3b3bd
Remove voidp atomics
qkoziol Jul 17, 2024
9d62227
Fix typo
qkoziol Jul 17, 2024
958eaa3
Redistribute code between this branch and the non_rec_rwlock branch
qkoziol Jul 17, 2024
6636db2
Remove voidp atomics
qkoziol Jul 17, 2024
4573806
Fix typo
qkoziol Jul 17, 2024
d5f5735
Restore atomic voidp inline routines
qkoziol Jul 18, 2024
afae630
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 18, 2024
b3b1584
Committing clang-format changes
github-actions[bot] Jul 18, 2024
ce70682
Restore atomic voidp routines
qkoziol Jul 18, 2024
a509273
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 18, 2024
4f8305e
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol Jul 24, 2024
58c75f3
Yield thread's timeslice when spin-waiting for barrier completion
qkoziol Jul 24, 2024
b2e6e4d
Committing clang-format changes
github-actions[bot] Jul 24, 2024
e5f8cbd
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol Jul 24, 2024
1c681af
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Jul 24, 2024
d95abf4
Merge remote-tracking branch 'origin/develop' into non_rec_rwlock
qkoziol Aug 2, 2024
44ec13c
Merge remote-tracking branch 'origin/develop' into non_rec_rwlock
qkoziol Aug 3, 2024
f13fde9
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Aug 3, 2024
a1445c4
Merge remote-tracking branch 'origin/develop' into non_rec_rwlock
qkoziol Aug 17, 2024
d3a8f6a
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol Aug 17, 2024
8c0d675
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Sep 20, 2024
68a5541
Fixups after merging from TOT
qkoziol Sep 20, 2024
b2c72a0
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Sep 20, 2024
fcfd7cd
Remove missed NVIDIA copyright lines
qkoziol Sep 20, 2024
91c9b3c
More cleanups from merge, updated RELEASE.txt, code tidying
qkoziol Sep 21, 2024
edbf13c
Committing clang-format changes
github-actions[bot] Sep 21, 2024
cc77afe
Debug CI failure on github
qkoziol Sep 22, 2024
fcc71dd
Cleanups while preparing to submit PR
qkoziol Sep 22, 2024
d8f1b74
Committing clang-format changes
github-actions[bot] Sep 22, 2024
287c78f
Fix missing routine on MacOS ttsafe test (#4863)
mattjala Sep 23, 2024
defb041
Fixes a segfault in h5dump (#4862)
bmribler Sep 23, 2024
1152d93
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 1, 2024
bb08384
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 2, 2024
877ce80
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 3, 2024
e41514e
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 3, 2024
e0b67a2
Committing clang-format changes
github-actions[bot] Oct 3, 2024
d991219
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 6, 2024
aa50796
Committing clang-format changes
github-actions[bot] Oct 6, 2024
64a28b3
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 9, 2024
2f379d2
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 16, 2024
4c9b00c
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 18, 2024
b116bd7
Correct misc. issues from changes on develop
qkoziol Oct 21, 2024
153c56a
Committing clang-format changes
github-actions[bot] Oct 21, 2024
ee57b11
Add rwlock emulation on MacOS
qkoziol Oct 22, 2024
c25aac4
Remove FALSE from some API tests (#4977)
jhendersonHDF Oct 18, 2024
0d32364
Set the C standard to 11 (#4975)
derobins Oct 18, 2024
82a0ea9
Remove the high-level GIF tools (#4976)
derobins Oct 18, 2024
f07868d
Renamed COPYING to LICENSE (#4978)
derobins Oct 19, 2024
f3cae8f
Always check for __attribute__() in CMake (#4980)
derobins Oct 20, 2024
2eb9ccd
Remove some Solaris Studio work-arounds (#4979)
derobins Oct 20, 2024
0c1eb7d
Check in generated files in src (#4981)
derobins Oct 20, 2024
8d0a602
Move h5_test_init() calls after MPI_Init (#4988)
jhendersonHDF Oct 21, 2024
1031b19
Remove bin/cmakehdf5
derobins Oct 22, 2024
729a6f5
Replace COPYING with LICENSE in workflows (#4989)
byrnHDF Oct 22, 2024
f7915dc
Prefix remaining CMake options except for CMake BUILD* variables (#4990)
byrnHDF Oct 22, 2024
0fd9afc
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 23, 2024
2c1cb90
Committing clang-format changes
github-actions[bot] Oct 23, 2024
9e41db9
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 24, 2024
688cde5
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 24, 2024
69d3d28
Committing clang-format changes
github-actions[bot] Oct 24, 2024
94b1b77
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 24, 2024
4426f03
Remove API routine calls from within the library
qkoziol Oct 26, 2024
8e7ccf7
Committing clang-format changes
github-actions[bot] Oct 26, 2024
cfdde80
Revert change
qkoziol Oct 26, 2024
5832f7d
Switch 'return NULL' to HGOTO_DONE(NULL) in H5allocate_memory
qkoziol Oct 26, 2024
a94f074
Minor cleanups
qkoziol Oct 26, 2024
2af59a1
Protect more user callbacks
qkoziol Oct 26, 2024
a2e0f5b
Committing clang-format changes
github-actions[bot] Oct 26, 2024
affe3a2
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 26, 2024
b14ce95
Merge branch 'develop' into locking_protocol
derobins Oct 29, 2024
2473d07
Update FUNC_ENTER
qkoziol Oct 30, 2024
5226226
Merge branch 'develop' into locking_protocol
qkoziol Oct 30, 2024
84ae455
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Oct 31, 2024
6bc58bc
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Nov 18, 2024
ae27cd1
Add user-callback wrappers to complex conversions
qkoziol Nov 18, 2024
e616ecc
Committing clang-format changes
github-actions[bot] Nov 18, 2024
9ba65be
Enable checking for threads.h
qkoziol Nov 19, 2024
ff8471e
Committing clang-format changes
github-actions[bot] Nov 19, 2024
30ab7bd
Correct API LOCK/UNLOCK macros for non-threadsafe builds
qkoziol Nov 19, 2024
fa313f0
Committing clang-format changes
github-actions[bot] Nov 19, 2024
5be85c8
Refactor location of threading package
qkoziol Nov 19, 2024
1fd01b4
Fix thread library
qkoziol Nov 19, 2024
c805c2f
Update threading config
qkoziol Nov 19, 2024
dcabd89
Work on thread config
qkoziol Nov 19, 2024
51d1f5a
Update thread library
qkoziol Nov 19, 2024
883cbbe
Revert changes for detecting C11 threads
qkoziol Nov 20, 2024
8e52cfa
Fix typo
qkoziol Nov 21, 2024
da26810
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Nov 22, 2024
d42953e
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Nov 26, 2024
0faf451
Remove prototype for unused routine.
qkoziol Nov 26, 2024
b228138
Committing clang-format changes
github-actions[bot] Nov 26, 2024
2c2993d
Try to prevent errors if an unknown multithreading mode is encountered
qkoziol Dec 3, 2024
b209735
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Dec 3, 2024
594c12d
Add missed protection around user callback
qkoziol Dec 4, 2024
5cbfa4d
Fix typo
qkoziol Dec 4, 2024
898a7a9
Fix warning
qkoziol Dec 4, 2024
e37d23a
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Dec 15, 2024
7d28ecd
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Dec 17, 2024
56d2f52
Follow changes on develop
qkoziol Dec 17, 2024
18fe722
Embrace more uses of H5_BEFORE_USER_CB*
qkoziol Dec 17, 2024
58a2310
Committing clang-format changes
github-actions[bot] Dec 17, 2024
45150ef
Try updating clang format options to know about H5_PAUSE/RESUME_ERRORS
qkoziol Dec 18, 2024
4363094
Fix(?) clang format syntax
qkoziol Dec 18, 2024
f77bc18
Committing clang-format changes
github-actions[bot] Dec 18, 2024
c932bda
Disable clang formatting for these blocks again
qkoziol Dec 18, 2024
1ee9892
Committing clang-format changes
github-actions[bot] Dec 18, 2024
4951361
Fix blocks again!
qkoziol Dec 18, 2024
92b2bc5
Committing clang-format changes
github-actions[bot] Dec 18, 2024
153226e
Try again
qkoziol Dec 18, 2024
4050130
Committing clang-format changes
github-actions[bot] Dec 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ IndentCaseLabels: true
IndentGotoLabels: false
#llvm11: IndentExternBlock: AfterExternBlock
#llvm11: InsertTrailingCommas: None
MacroBlockBegin: "^BEGIN_FUNC"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The BEGIN_FUNC/END_FUNC macros were removed a while ago. So, I actually removed them and added the _BEFORE_USER_CB/_AFTER_USER_CB macros.

MacroBlockEnd: "^END_FUNC"
MacroBlockBegin: "^H5_BEFORE_USER_CB*|^H5E_PAUSE_ERRORS"
MacroBlockEnd: "^H5_AFTER_USER_CB*|^H5E_RESUME_ERRORS"
ObjCBlockIndentWidth: 4
#llvm11: ObjCBreakBeforeNestedBlockParam: true
ReflowComments: true
Expand All @@ -81,9 +81,8 @@ StatementMacros:
- FUNC_LEAVE_NOAPI_NAMECHECK_ONLY
- FUNC_LEAVE_NOAPI_VOID_NAMECHECK_ONLY
- FUNC_LEAVE_NOAPI_NOFS
- H5E_BEGIN_TRY
- H5E_END_TRY
- H5E_PRINTF
- H5E_THROW
- H5_BEGIN_TAG
- H5_END_TAG
- H5_GCC_DIAG_OFF
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/autotools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,31 +44,51 @@ jobs:
with:
build_mode: "production"

call-debug-concurrent-autotools:
name: "Autotools Debug Concurrency Workflows"
uses: ./.github/workflows/main-auto.yml
with:
concurrent: enable
thread_safety: disable
build_mode: "debug"

call-release-concurrent-autotools:
name: "Autotools Release Concurrency Workflows"
uses: ./.github/workflows/main-auto.yml
with:
concurrent: enable
thread_safety: disable
build_mode: "production"

call-debug-thread-autotools:
name: "Autotools Debug Thread-Safety Workflows"
uses: ./.github/workflows/main-auto.yml
with:
concurrent: disable
thread_safety: enable
build_mode: "debug"

call-release-thread-autotools:
name: "Autotools Release Thread-Safety Workflows"
uses: ./.github/workflows/main-auto.yml
with:
concurrent: disable
thread_safety: enable
build_mode: "production"

call-debug-autotools:
name: "Autotools Debug Workflows"
uses: ./.github/workflows/main-auto.yml
with:
concurrent: disable
thread_safety: disable
build_mode: "debug"

call-release-autotools:
name: "Autotools Release Workflows"
uses: ./.github/workflows/main-auto.yml
with:
concurrent: disable
thread_safety: disable
build_mode: "production"

Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,51 @@ jobs:
name: "CMake Special Workflows"
uses: ./.github/workflows/main-cmake-spc.yml

call-debug-concurrent-cmake:
name: "CMake Debug Concurrency Workflows"
uses: ./.github/workflows/main-cmake.yml
with:
concurrent: "CC"
thread_safety: ""
build_mode: "Debug"

call-release-concurrent-cmake:
name: "CMake Release Concurrency Workflows"
uses: ./.github/workflows/main-cmake.yml
with:
concurrent: "CC"
thread_safety: ""
build_mode: "Release"

call-debug-thread-cmake:
name: "CMake Debug Thread-Safety Workflows"
uses: ./.github/workflows/main-cmake.yml
with:
concurrent: ""
thread_safety: "TS"
build_mode: "Debug"

call-release-thread-cmake:
name: "CMake Release Thread-Safety Workflows"
uses: ./.github/workflows/main-cmake.yml
with:
concurrent: ""
thread_safety: "TS"
build_mode: "Release"

call-debug-cmake:
name: "CMake Debug Workflows"
uses: ./.github/workflows/main-cmake.yml
with:
concurrent: ""
thread_safety: ""
build_mode: "Debug"

call-release-cmake:
name: "CMake Release Workflows"
uses: ./.github/workflows/main-cmake.yml
with:
concurrent: ""
thread_safety: ""
build_mode: "Release"

Expand Down
31 changes: 28 additions & 3 deletions .github/workflows/main-auto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
description: "thread-safety enable/disable"
required: true
type: string
concurrent:
description: "concurrency enable/disable"
required: true
type: string
build_mode:
description: "release vs. debug build"
required: true
Expand All @@ -22,7 +26,7 @@ jobs:
# Linux (Ubuntu) w/ gcc + Autotools
#
Autotools_build_and_test:
name: "GCC-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}d"
name: "GCC-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}d-CC=${{ inputs.concurrent }}d"
# Don't run the action if the commit message says to skip CI
if: "!contains(github.event.head_commit.message, 'skip-ci')"

Expand Down Expand Up @@ -60,6 +64,7 @@ jobs:
--enable-shared \
--disable-parallel \
--${{ inputs.thread_safety }}-threadsafe \
--${{ inputs.concurrent }}-concurrency \
--enable-cxx \
--enable-fortran \
--enable-java \
Expand All @@ -68,7 +73,7 @@ jobs:
--enable-ros3-vfd \
--with-szlib=yes
shell: bash
if: ${{ inputs.thread_safety == 'disable' }}
if: ${{ inputs.thread_safety == 'disable' && inputs.concurrent == 'disable'}}

- name: Autotools Configure (Thread-Safe)
run: |
Expand All @@ -79,14 +84,34 @@ jobs:
--enable-build-mode=${{ inputs.build_mode }} \
--enable-shared \
--${{ inputs.thread_safety }}-threadsafe \
--${{ inputs.concurrent }}-concurrency \
--disable-hl \
--disable-parallel \
--enable-mirror-vfd \
--enable-direct-vfd \
--enable-ros3-vfd \
--with-szlib=yes
shell: bash
if: ${{ inputs.thread_safety == 'enable' }}
if: ${{ inputs.thread_safety == 'enable' && inputs.concurrent == 'disable' }}

- name: Autotools Configure (Concurrency)
run: |
sh ./autogen.sh
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
$GITHUB_WORKSPACE/configure \
--enable-build-mode=${{ inputs.build_mode }} \
--enable-shared \
--${{ inputs.thread_safety }}-threadsafe \
--${{ inputs.concurrent }}-concurrency \
--disable-hl \
--disable-parallel \
--enable-mirror-vfd \
--enable-direct-vfd \
--enable-ros3-vfd \
--with-szlib=yes
shell: bash
if: ${{ inputs.thread_safety == 'disable' && inputs.concurrent == 'enable' }}

- name: Autotools Build
run: make -j3
Expand Down
53 changes: 40 additions & 13 deletions .github/workflows/main-cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
description: "TS or empty"
required: true
type: string
concurrent:
description: "CC or empty"
required: true
type: string
build_mode:
description: "release vs. debug build"
required: true
Expand Down Expand Up @@ -103,7 +107,7 @@ jobs:
run_tests: true

# Sets the job's name from the properties
name: "${{ matrix.name }}-${{ inputs.build_mode }}-${{ inputs.thread_safety }}"
name: "${{ matrix.name }}-${{ inputs.build_mode }}-${{ inputs.thread_safety }}-${{ inputs.concurrent }}"

# Don't run the action if the commit message says to skip CI
if: "!contains(github.event.head_commit.message, 'skip-ci')"
Expand Down Expand Up @@ -186,7 +190,7 @@ jobs:
-DHDF5_PACK_MACOSX_DMG:BOOL=OFF \
$GITHUB_WORKSPACE
shell: bash
if: ${{ inputs.thread_safety != 'TS' }}
if: ${{ inputs.thread_safety != 'TS' && inputs.concurrent != 'CC'}}

- name: CMake Configure (Thread-Safe)
run: |
Expand All @@ -199,6 +203,7 @@ jobs:
-DBUILD_STATIC_LIBS:BOOL=${{ (matrix.os != 'windows-latest') }} \
-DHDF5_ENABLE_ALL_WARNINGS:BOOL=ON \
-DHDF5_ENABLE_THREADSAFE:BOOL=ON \
-DHDF5_ENABLE_CONCURRENCY:BOOL=OFF \
-DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
-DHDF5_BUILD_FORTRAN:BOOL=OFF \
Expand All @@ -214,7 +219,35 @@ jobs:
-DHDF5_PACK_MACOSX_DMG:BOOL=OFF \
$GITHUB_WORKSPACE
shell: bash
if: ${{ inputs.thread_safety == 'TS' }}
if: ${{ inputs.thread_safety == 'TS' && inputs.concurrent != 'CC'}}

- name: CMake Configure (Concurrency)
run: |
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
${{ matrix.generator }} \
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=${{ (matrix.os != 'windows-latest') }} \
-DHDF5_ENABLE_ALL_WARNINGS=ON \
-DHDF5_ENABLE_THREADSAFE:BOOL=OFF \
-DHDF5_ENABLE_CONCURRENCY:BOOL=ON \
-DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
-DHDF5_BUILD_FORTRAN:BOOL=OFF \
-DHDF5_BUILD_JAVA:BOOL=OFF \
-DHDF5_BUILD_HL_LIB:BOOL=OFF \
-DHDF5_BUILD_DOC=OFF \
-DLIBAEC_USE_LOCALCONTENT=${{ matrix.localaec }} \
-DZLIB_USE_LOCALCONTENT=${{ matrix.localzlib }} \
-DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \
-DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \
-DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \
-DHDF5_PACK_EXAMPLES:BOOL=ON \
$GITHUB_WORKSPACE
shell: bash
if: ${{ inputs.thread_safety != 'TS' && inputs.concurrent == 'CC'}}

# BUILD
- name: CMake Build
Expand All @@ -225,13 +258,7 @@ jobs:
- name: CMake Run Tests
run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V
working-directory: ${{ runner.workspace }}/build
if: ${{ matrix.run_tests && (inputs.thread_safety != 'TS') }}
qkoziol marked this conversation as resolved.
Show resolved Hide resolved

# THREAD-SAFE
- name: CMake Run Thread-Safe Tests
run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -R ttsafe
working-directory: ${{ runner.workspace }}/build
if: ${{ matrix.run_tests && (inputs.thread_safety == 'TS') }}
if: ${{ matrix.run_tests }}

- name: CMake Run Package
run: cpack -C ${{ inputs.build_mode }} -V
Expand All @@ -253,20 +280,20 @@ jobs:
name: zip-vs2022_cl-${{ inputs.build_mode }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-win64.zip
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.os == 'windows-latest') && (inputs.thread_safety != 'TS') && ( inputs.build_mode != 'Debug') }}
if: ${{ (matrix.os == 'windows-latest') && (inputs.thread_safety != 'TS') && (inputs.concurrent != 'CC') && ( inputs.build_mode != 'Debug') }}
qkoziol marked this conversation as resolved.
Show resolved Hide resolved

- name: Save published binary (linux)
uses: actions/upload-artifact@v4
with:
name: tgz-ubuntu-2404_gcc-${{ inputs.build_mode }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-Linux.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.os == 'ubuntu-latest') && (inputs.thread_safety != 'TS') && ( inputs.build_mode != 'Debug') }}
if: ${{ (matrix.os == 'ubuntu-latest') && (inputs.thread_safety != 'TS') && (inputs.concurrent != 'CC') && ( inputs.build_mode != 'Debug') }}

- name: Save published binary (Mac_latest)
uses: actions/upload-artifact@v4
with:
name: tgz-macos14_clang-${{ inputs.build_mode }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.os == 'macos-latest') && (inputs.thread_safety != 'TS') && ( inputs.build_mode != 'Debug') }}
if: ${{ (matrix.os == 'macos-latest') && (inputs.thread_safety != 'TS') && (inputs.concurrent != 'CC') && ( inputs.build_mode != 'Debug') }}
53 changes: 53 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -985,6 +985,59 @@ if (HDF5_ENABLE_THREADSAFE)
set (H5_HAVE_THREADSAFE 1)
endif ()

#-----------------------------------------------------------------------------
# Option to use multi-threaded concurrency
#-----------------------------------------------------------------------------
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concurrency configuration, which is mutually exclusive with the existing threadsafe configuration option.

option (HDF5_ENABLE_CONCURRENCY "Enable multi-threaded concurrency" OFF)
if (HDF5_ENABLE_CONCURRENCY)
# check for unsupported options
if (WIN32)
if (BUILD_STATIC_LIBS)
message (FATAL_ERROR " **** multi-threaded concurrency option not supported with static library **** ")
endif ()
endif ()
if (HDF_ENABLE_PARALLEL)
if (NOT ALLOW_UNSUPPORTED)
message (FATAL_ERROR " **** Parallel and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ")
else ()
message (VERBOSE " **** Allowing unsupported parallel and multi-threaded concurrency options **** ")
endif ()
endif ()
if (HDF5_BUILD_FORTRAN)
if (NOT ALLOW_UNSUPPORTED)
message (FATAL_ERROR " **** Fortran and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ")
else ()
message (VERBOSE " **** Allowing unsupported Fortran and multi-threaded concurrency options **** ")
endif ()
endif ()
if (HDF5_BUILD_CPP_LIB)
if (NOT ALLOW_UNSUPPORTED)
message (FATAL_ERROR " **** C++ and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ")
else ()
message (VERBOSE " **** Allowing unsupported C++ and multi-threaded concurrency options **** ")
endif ()
endif ()
if (HDF5_BUILD_HL_LIB)
if (NOT ALLOW_UNSUPPORTED)
message (FATAL_ERROR " **** HL and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ")
else ()
message (VERBOSE " **** Allowing unsupported HL and multi-threaded concurrency options **** ")
endif ()
endif ()

# Check for threading package
if (NOT Threads_FOUND)
message (FATAL_ERROR " **** multi-threaded concurrency option requires a threading package and none was found **** ")
endif ()

# Multi-threaded concurrency and threadsafe options are mutually exclusive
if (HDF5_ENABLE_THREADSAFE)
message (FATAL_ERROR " **** multi-threaded concurrency and threadsafe options are mutually exclusive **** ")
endif ()

set (H5_HAVE_CONCURRENCY 1)
endif ()

#-----------------------------------------------------------------------------
# Option to build the map API
#-----------------------------------------------------------------------------
Expand Down
Loading