Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
720 commits
Select commit Hold shift + click to select a range
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
d15663e
Make H5FL package threadsafe and add efficient mutex for the 'DLFTT' …
qkoziol Jul 6, 2024
dd1cc71
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
aa44b1f
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Jul 12, 2024
30501f0
Committing clang-format changes
github-actions[bot] Jul 12, 2024
55b2806
Revert a few changes, to make a cleaner diff
qkoziol Jul 12, 2024
7dda0f5
Remove non-concurrency changes
qkoziol Jul 12, 2024
c0ccec2
Committing clang-format changes
github-actions[bot] Jul 12, 2024
1e584c1
Protect the memory limits and fix factory issues
qkoziol Jul 13, 2024
54aa69a
Committing clang-format changes
github-actions[bot] Jul 13, 2024
c6babd1
Cleanup code a bit
qkoziol Jul 13, 2024
d2fe48f
Check if factories are initialized
qkoziol Jul 15, 2024
696124a
Committing clang-format changes
github-actions[bot] Jul 15, 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
a3eef49
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Jul 15, 2024
a7da18c
Fix typo in configure check
qkoziol Jul 15, 2024
11f1a0d
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Jul 15, 2024
d488bd0
Move global variable initialization code out of H5TS header
qkoziol Jul 16, 2024
26f5308
Committing clang-format changes
github-actions[bot] Jul 16, 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
a9234e4
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
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
e0a5184
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
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
b1720a7
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
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
7f6b4d6
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
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
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
87d91c1
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Oct 31, 2024
473cebc
Correct some atomics issues
qkoziol Oct 31, 2024
d9cfc84
Committing clang-format changes
github-actions[bot] Oct 31, 2024
4060515
Switch #ifdef to correct macro
qkoziol Nov 18, 2024
f9900b4
Correct free-list test
qkoziol Nov 18, 2024
03ebc01
Committing clang-format changes
github-actions[bot] Nov 18, 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
32cfa19
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Nov 19, 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
1b8ad8d
Enable checking for threads.h
qkoziol Nov 19, 2024
191205f
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Nov 19, 2024
fa313f0
Committing clang-format changes
github-actions[bot] Nov 19, 2024
a8e8fd2
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
b07f941
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Nov 21, 2024
71d3378
Add wrappers for atomics in non-concurrent builds
qkoziol Nov 21, 2024
b1f9d9d
Committing clang-format changes
github-actions[bot] Nov 21, 2024
da26810
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Nov 22, 2024
f3cc44c
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Nov 22, 2024
a4b5e66
Test compile info
qkoziol Nov 22, 2024
ff1dde9
Focus testing on problem build
qkoziol Nov 22, 2024
5c6b895
Add more debugging
qkoziol Nov 22, 2024
1e188f4
Tune to Windows
qkoziol Nov 22, 2024
b656619
Committing clang-format changes
github-actions[bot] Nov 22, 2024
963c6c3
Fix MSVC pragma
qkoziol Nov 22, 2024
3303567
Fix the failures on non-concurrent builds
qkoziol Nov 23, 2024
daca1fe
Committing clang-format changes
github-actions[bot] Nov 23, 2024
588af1b
Switch more atomics to macros
qkoziol Nov 23, 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
a1fa3ab
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Nov 26, 2024
b228138
Committing clang-format changes
github-actions[bot] Nov 26, 2024
06323a1
Committing clang-format changes
github-actions[bot] Nov 27, 2024
10529cf
Add comments
qkoziol Nov 27, 2024
c1656dd
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Nov 27, 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
d708126
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Dec 4, 2024
5cbfa4d
Fix typo
qkoziol Dec 4, 2024
6d287e1
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Dec 4, 2024
898a7a9
Fix warning
qkoziol Dec 4, 2024
0f7e26c
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Dec 4, 2024
e37d23a
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol Dec 15, 2024
e7e1553
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
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
a583a12
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
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
401bed4
Merge remote-tracking branch 'origin/locking_protocol' into ts_h5fl_reg
qkoziol Dec 18, 2024
4ba7ca2
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Dec 20, 2024
901d6b3
Add random tester for "regular" free list operations
qkoziol Dec 24, 2024
17c688d
Committing clang-format changes
github-actions[bot] Dec 24, 2024
3ac939e
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Dec 24, 2024
4b024d6
Only run multithreaded H5FL tests when concurrency enabled
qkoziol Dec 24, 2024
0e81fbf
Committing clang-format changes
github-actions[bot] Dec 24, 2024
443612b
Add tests for threadsafe 'factory' free list operations
qkoziol Dec 24, 2024
e672f5c
Committing clang-format changes
github-actions[bot] Dec 24, 2024
00270b7
Add testing for 'block' operations
qkoziol Dec 29, 2024
2db28c5
Committing clang-format changes
github-actions[bot] Dec 29, 2024
d96adf8
Remove assert() that's incorrect in concurrent mode
qkoziol Dec 30, 2024
99aafb5
Add 'array' testing
qkoziol Dec 30, 2024
8ccdcab
Committing clang-format changes
github-actions[bot] Dec 30, 2024
3676f3c
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Dec 30, 2024
6ceb9df
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Jan 2, 2025
6b3c69a
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Jan 7, 2025
31e1c07
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Jan 13, 2025
9b2acbb
Update to track changes on develop branch
qkoziol Jan 13, 2025
21323c1
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Jan 20, 2025
358dc55
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Jan 24, 2025
4522320
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Feb 2, 2025
6247631
Remove accidental inclusion of NVIDIA copyright
qkoziol Feb 6, 2025
28f4f91
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Feb 6, 2025
851aa9f
Remove unintentionally included text file
qkoziol Feb 6, 2025
7b33d54
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Feb 12, 2025
d51576e
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Feb 17, 2025
0cd8c40
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Mar 5, 2025
c8cc7a8
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Mar 13, 2025
51e4919
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Aug 20, 2025
6caca85
Fixes for check-vfd testing
qkoziol Aug 19, 2025
14d4dfc
Add new option that controls enabling free lists
qkoziol Aug 22, 2025
dea5679
Committing clang-format changes
github-actions[bot] Aug 22, 2025
421f556
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Sep 20, 2025
cd4df58
Remove unused variables
qkoziol Sep 20, 2025
7d58eb2
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Sep 22, 2025
bc6c54b
Merge remote-tracking branch 'origin/develop' into ts_h5fl_reg
qkoziol Sep 29, 2025
af0f47e
Simplified fix for https://github.com/HDFGroup/hdf5/pull/5829
qkoziol Sep 28, 2025
f7b59cf
Corrected change in https://github.com/HDFGroup/hdf5/issues/5549
qkoziol Sep 29, 2025
6f06c86
Clean up fix for https://github.com/HDFGroup/hdf5/issues/5579
qkoziol Sep 29, 2025
6f0d330
Committing clang-format changes
github-actions[bot] Sep 29, 2025
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
148 changes: 78 additions & 70 deletions c++/test/tfile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -847,19 +847,6 @@ test_file_info()
H5F_fspace_strategy_t out_strategy = H5F_FSPACE_STRATEGY_FSM_AGGR;

try {
// Create a file using default properties.
H5File tempfile(FILE7, H5F_ACC_TRUNC);

// Get the file's version information.
H5F_info2_t finfo;
tempfile.getFileInfo(finfo);
verify_val(static_cast<long>(finfo.super.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.free.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.sohm.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);

// Close the file.
tempfile.close();

// Create file creation property list.
FileCreatPropList fcpl;

Expand All @@ -877,80 +864,101 @@ test_file_info()
verify_val(out_fsp_psize, FSP_SIZE_DEF, "FileCreatPropList::getFileSpacePagesize", __LINE__,
__FILE__);

// Set various file information.
fcpl.setUserblock(F2_USERBLOCK_SIZE);
fcpl.setSizes(F2_OFFSET_SIZE, F2_LENGTH_SIZE);
fcpl.setSymk(F2_SYM_INTERN_K, F2_SYM_LEAF_K);
fcpl.setIstorek(F2_ISTORE);
// Only test this for VFDs that operate on a single file
bool default_vfd_compatible = true;
h5_driver_is_default_vfd_compatible(H5P_DEFAULT, &default_vfd_compatible);

if (default_vfd_compatible) {
// Create a file using default properties.
H5File tempfile(FILE7, H5F_ACC_TRUNC);

hsize_t threshold = 5; // Free space section threshold to set
bool persist = true; // Persist free-space to set
H5F_fspace_strategy_t strategy = H5F_FSPACE_STRATEGY_PAGE;
// Get the file's version information.
H5F_info2_t finfo;
tempfile.getFileInfo(finfo);
verify_val(static_cast<long>(finfo.super.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.free.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.sohm.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);

fcpl.setFileSpaceStrategy(strategy, persist, threshold);
fcpl.setFileSpacePagesize(FSP_SIZE512);
// Close the file.
tempfile.close();

// Creating a file with the non-default file creation property list
// should create a version 1 superblock
// Set various file information.
fcpl.setUserblock(F2_USERBLOCK_SIZE);
fcpl.setSizes(F2_OFFSET_SIZE, F2_LENGTH_SIZE);
fcpl.setSymk(F2_SYM_INTERN_K, F2_SYM_LEAF_K);
fcpl.setIstorek(F2_ISTORE);

// Create file with custom file creation property list.
H5File file7(FILE7, H5F_ACC_TRUNC, fcpl);
hsize_t threshold = 5; // Free space section threshold to set
hbool_t persist = true; // Persist free-space to set
H5F_fspace_strategy_t strategy = H5F_FSPACE_STRATEGY_PAGE;

// Close the file creation property list.
fcpl.close();
fcpl.setFileSpaceStrategy(strategy, persist, threshold);
fcpl.setFileSpacePagesize(FSP_SIZE512);

// Get the file's version information.
file7.getFileInfo(finfo);
verify_val(static_cast<long>(finfo.super.version), 2, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.free.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.sohm.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
// Creating a file with the non-default file creation property list
// should create a version 1 superblock

// Close the file.
file7.close();
// Create file with custom file creation property list.
H5File file7(FILE7, H5F_ACC_TRUNC, fcpl);

// Re-open the file.
file7.openFile(FILE7, H5F_ACC_RDONLY);
// Close the file creation property list.
fcpl.close();

// Get the file's creation property list.
FileCreatPropList fcpl2 = file7.getCreatePlist();
// Get the file's version information.
file7.getFileInfo(finfo);
verify_val(static_cast<long>(finfo.super.version), 2, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.free.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.sohm.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);

// Get the file's version information.
file7.getFileInfo(finfo);
verify_val(static_cast<long>(finfo.super.version), 2, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.free.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.sohm.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
// Close the file.
file7.close();

// Retrieve the property values & check them.
hsize_t userblock = fcpl2.getUserblock();
verify_val(userblock, F2_USERBLOCK_SIZE, "FileCreatPropList::getUserblock", __LINE__, __FILE__);
// Re-open the file.
file7.openFile(FILE7, H5F_ACC_RDONLY);

size_t off_size = 0, len_size = 0;
fcpl2.getSizes(off_size, len_size);
verify_val(off_size, F2_OFFSET_SIZE, "FileCreatPropList::getSizes", __LINE__, __FILE__);
verify_val(len_size, F2_LENGTH_SIZE, "FileCreatPropList::getSizes", __LINE__, __FILE__);
// Get the file's creation property list.
FileCreatPropList fcpl2 = file7.getCreatePlist();

unsigned sym_ik = 0, sym_lk = 0;
fcpl2.getSymk(sym_ik, sym_lk);
verify_val(sym_ik, F2_SYM_INTERN_K, "FileCreatPropList::getSymk", __LINE__, __FILE__);
verify_val(sym_lk, F2_SYM_LEAF_K, "FileCreatPropList::getSymk", __LINE__, __FILE__);
// Get the file's version information.
file7.getFileInfo(finfo);
verify_val(static_cast<long>(finfo.super.version), 2, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.free.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);
verify_val(static_cast<long>(finfo.sohm.version), 0, "H5File::getFileInfo", __LINE__, __FILE__);

unsigned istore_ik = fcpl2.getIstorek();
verify_val(istore_ik, F2_ISTORE, "FileCreatPropList::getIstorek", __LINE__, __FILE__);
// Retrieve the property values & check them.
hsize_t userblock = fcpl2.getUserblock();
verify_val(userblock, F2_USERBLOCK_SIZE, "FileCreatPropList::getUserblock", __LINE__, __FILE__);

/* ret=H5Pget_shared_mesg_nindexes(fcpl2,&nindexes);
CHECK(ret, FAIL, "H5Pget_shared_mesg_nindexes");
VERIFY(nindexes, MISC11_NINDEXES, "H5Pget_shared_mesg_nindexes");
*/
size_t off_size = 0, len_size = 0;
fcpl2.getSizes(off_size, len_size);
verify_val(off_size, F2_OFFSET_SIZE, "FileCreatPropList::getSizes", __LINE__, __FILE__);
verify_val(len_size, F2_LENGTH_SIZE, "FileCreatPropList::getSizes", __LINE__, __FILE__);

// Get and verify the file space info from the creation property list */
fcpl2.getFileSpaceStrategy(out_strategy, out_persist, out_threshold);
verify_val(static_cast<long>(out_strategy), static_cast<long>(strategy),
"FileCreatPropList::getFileSpaceStrategy", __LINE__, __FILE__);
verify_val(out_persist, persist, "FileCreatPropList::getFileSpaceStrategy", __LINE__, __FILE__);
verify_val(out_threshold, threshold, "FileCreatPropList::getFileSpaceStrategy", __LINE__, __FILE__);
unsigned sym_ik = 0, sym_lk = 0;
fcpl2.getSymk(sym_ik, sym_lk);
verify_val(sym_ik, F2_SYM_INTERN_K, "FileCreatPropList::getSymk", __LINE__, __FILE__);
verify_val(sym_lk, F2_SYM_LEAF_K, "FileCreatPropList::getSymk", __LINE__, __FILE__);

out_fsp_psize = fcpl2.getFileSpacePagesize();
verify_val(out_fsp_psize, FSP_SIZE512, "FileCreatPropList::getFileSpacePagesize", __LINE__, __FILE__);
unsigned istore_ik = fcpl2.getIstorek();
verify_val(istore_ik, F2_ISTORE, "FileCreatPropList::getIstorek", __LINE__, __FILE__);

/* ret=H5Pget_shared_mesg_nindexes(fcpl2,&nindexes);
CHECK(ret, FAIL, "H5Pget_shared_mesg_nindexes");
VERIFY(nindexes, MISC11_NINDEXES, "H5Pget_shared_mesg_nindexes");
*/

// Get and verify the file space info from the creation property list */
fcpl2.getFileSpaceStrategy(out_strategy, out_persist, out_threshold);
verify_val(static_cast<long>(out_strategy), static_cast<long>(strategy),
"FileCreatPropList::getFileSpaceStrategy", __LINE__, __FILE__);
verify_val(out_persist, persist, "FileCreatPropList::getFileSpaceStrategy", __LINE__, __FILE__);
verify_val(out_threshold, threshold, "FileCreatPropList::getFileSpaceStrategy", __LINE__,
__FILE__);

out_fsp_psize = fcpl2.getFileSpacePagesize();
verify_val(out_fsp_psize, FSP_SIZE512, "FileCreatPropList::getFileSpacePagesize", __LINE__,
__FILE__);
}

PASSED();
} // end of try block
Expand Down
63 changes: 33 additions & 30 deletions c++/test/th5s.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,37 +153,40 @@ test_h5s_basic()
{
} // do nothing, exception expected

/*
* Try reading a file that has been prepared that has a dataset with a
* higher dimensionality than what the library can handle.
*
* If this test fails and the H5S_MAX_RANK variable has changed, follow
* the instructions in space_overflow.c for regenating the th5s.h5 file.
*/
char *tmp_str = new char[TESTFILE.length() + 1];
strcpy(tmp_str, TESTFILE.c_str());
const char *testfile = H5_get_srcdir_filename(tmp_str);
delete[] tmp_str;

// Create file
H5File fid1(testfile, H5F_ACC_RDONLY);

// Try to open the dataset that has higher dimensionality than
// what the library can handle and this operation should fail.
try {
DataSet dset1 = fid1.openDataSet("dset");

// Should FAIL but didn't, so throw an invalid action exception
throw InvalidActionException(
"H5File::openDataSet",
"Opening a dataset with higher dimensionality than what the library can handle");
// Only test this for VFDs that operate on a single file
bool default_vfd_compatible = true;
h5_driver_is_default_vfd_compatible(H5P_DEFAULT, &default_vfd_compatible);

if (default_vfd_compatible) {
/*
* Try reading a file that has been prepared that has a dataset with a
* higher dimensionality than what the library can handle.
*
* If this test fails and the H5S_MAX_RANK variable has changed, follow
* the instructions in space_overflow.c for regenating the th5s.h5 file.
*/
char *tmp_str = new char[TESTFILE.length() + 1];
strcpy(tmp_str, TESTFILE.c_str());
const char *testfile = H5_get_srcdir_filename(tmp_str);
delete[] tmp_str;

// Create file
H5File fid1(testfile, H5F_ACC_RDONLY);

// Try to open the dataset that has higher dimensionality than
// what the library can handle and this operation should fail.
try {
DataSet dset1 = fid1.openDataSet("dset");

// Should FAIL but didn't, so throw an invalid action exception
throw InvalidActionException(
"H5File::openDataSet",
"Opening a dataset with higher dimensionality than what the library can handle");
}
catch (FileIException &E) // catching higher dimensionality dataset
{
} // do nothing, exception expected
}
catch (FileIException &E) // catching higher dimensionality dataset
{
} // do nothing, exception expected

// CHECK_I(ret, "H5Fclose"); // leave this here, later, fake a failure
// in the p_close see how this will handle it. - BMR

// When running in valgrind, this PASSED macro will be missed
PASSED();
Expand Down
9 changes: 4 additions & 5 deletions config/cmake/HDF5DeveloperBuild.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,10 @@ if (HDF5_ENABLE_DEBUG_H5TS)
list (APPEND HDF5_DEBUG_APIS H5TS_DEBUG)
endif ()

# If HDF5 free list debugging wasn't specifically enabled, disable
# free lists entirely for developer build modes, as they can
# make certain types of issues (like references to stale pointers)
# much more difficult to debug
if (NOT HDF5_ENABLE_DEBUG_H5FL)
# Option to control internal free list use. Enabled by default
option (HDF5_ENABLE_FREE_LISTS "Enable memory free lists" ON)
mark_as_advanced (HDF5_ENABLE_FREE_LISTS)
if (NOT HDF5_ENABLE_FREE_LISTS)
list (APPEND HDF5_DEVELOPER_DEFS H5_NO_FREE_LISTS)
endif ()

Expand Down
1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -869,6 +869,7 @@ set (H5TS_SOURCES
${HDF5_SRC_DIR}/H5TSbarrier.c
${HDF5_SRC_DIR}/H5TSc11.c
${HDF5_SRC_DIR}/H5TScond.c
${HDF5_SRC_DIR}/H5TSdlftt_mutex.c
${HDF5_SRC_DIR}/H5TSint.c
${HDF5_SRC_DIR}/H5TSkey.c
${HDF5_SRC_DIR}/H5TSmutex.c
Expand Down
4 changes: 4 additions & 0 deletions src/H5.c
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,10 @@ H5_init_library(void)
* default FAPL.
*
*/
#ifdef H5_HAVE_CONCURRENCY
if (H5FL_init() < 0)
HGOTO_ERROR(H5E_FUNC, H5E_CANTINIT, FAIL, "unable to initialize free list interface");
#endif
if (H5E_init() < 0)
HGOTO_ERROR(H5E_FUNC, H5E_CANTINIT, FAIL, "unable to initialize error interface");
if (H5FD_init() < 0)
Expand Down
21 changes: 9 additions & 12 deletions src/H5Cimage.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ static void H5C__prep_for_file_close__compute_fd_heights_real(H5C_cache_entry_
static herr_t H5C__prep_for_file_close__setup_image_entries_array(H5C_t *cache_ptr);
static herr_t H5C__prep_for_file_close__scan_entries(const H5F_t *f, H5C_t *cache_ptr);
static herr_t H5C__reconstruct_cache_contents(H5F_t *f, H5C_t *cache_ptr);
static H5C_cache_entry_t *H5C__reconstruct_cache_entry(const H5F_t *f, H5C_t *cache_ptr, hsize_t *buf_size,
static H5C_cache_entry_t *H5C__reconstruct_cache_entry(const H5F_t *f, H5C_t *cache_ptr, hsize_t buf_size,
const uint8_t **buf);
static herr_t H5C__write_cache_image_superblock_msg(H5F_t *f, bool create);
static herr_t H5C__read_cache_image(H5F_t *f, H5C_t *cache_ptr);
Expand Down Expand Up @@ -2376,7 +2376,6 @@ H5C__reconstruct_cache_contents(H5F_t *f, H5C_t *cache_ptr)
{
H5C_cache_entry_t *pf_entry_ptr; /* Pointer to prefetched entry */
H5C_cache_entry_t *parent_ptr; /* Pointer to parent of prefetched entry */
hsize_t image_len; /* Image length */
const uint8_t *p; /* Pointer into image buffer */
unsigned u, v; /* Local index variable */
herr_t ret_value = SUCCEED; /* Return value */
Expand All @@ -2392,11 +2391,10 @@ H5C__reconstruct_cache_contents(H5F_t *f, H5C_t *cache_ptr)
assert(cache_ptr->image_len > 0);

/* Decode metadata cache image header */
p = (uint8_t *)cache_ptr->image_buffer;
image_len = cache_ptr->image_len;
if (H5C__decode_cache_image_header(f, cache_ptr, &p, image_len + 1) < 0)
p = (uint8_t *)cache_ptr->image_buffer;
if (H5C__decode_cache_image_header(f, cache_ptr, &p, cache_ptr->image_len + 1) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_CANTDECODE, FAIL, "cache image header decode failed");
assert((size_t)(p - (uint8_t *)cache_ptr->image_buffer) < image_len);
assert((size_t)(p - (uint8_t *)cache_ptr->image_buffer) < cache_ptr->image_len);

/* The image_data_len and # of entries should be defined now */
assert(cache_ptr->image_data_len > 0);
Expand All @@ -2408,7 +2406,7 @@ H5C__reconstruct_cache_contents(H5F_t *f, H5C_t *cache_ptr)
/* Create the prefetched entry described by the ith
* entry in cache_ptr->image_entrise.
*/
if (NULL == (pf_entry_ptr = H5C__reconstruct_cache_entry(f, cache_ptr, &image_len, &p)))
if (NULL == (pf_entry_ptr = H5C__reconstruct_cache_entry(f, cache_ptr, cache_ptr->image_len, &p)))
HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "reconstruction of cache entry failed");

/* Note that we make no checks on available cache space before
Expand Down Expand Up @@ -2564,7 +2562,7 @@ H5C__reconstruct_cache_contents(H5F_t *f, H5C_t *cache_ptr)
*-------------------------------------------------------------------------
*/
static H5C_cache_entry_t *
H5C__reconstruct_cache_entry(const H5F_t *f, H5C_t *cache_ptr, hsize_t *buf_size, const uint8_t **buf)
H5C__reconstruct_cache_entry(const H5F_t *f, H5C_t *cache_ptr, hsize_t buf_size, const uint8_t **buf)
{
H5C_cache_entry_t *pf_entry_ptr = NULL; /* Reconstructed cache entry */
uint8_t flags = 0;
Expand All @@ -2577,8 +2575,8 @@ H5C__reconstruct_cache_entry(const H5F_t *f, H5C_t *cache_ptr, hsize_t *buf_size
#endif
bool file_is_rw;
const uint8_t *p;
const uint8_t *p_end = *buf + *buf_size - 1; /* Pointer to last valid byte in buffer */
H5C_cache_entry_t *ret_value = NULL; /* Return value */
const uint8_t *p_end = *buf + buf_size - 1; /* Pointer to last valid byte in buffer */
H5C_cache_entry_t *ret_value = NULL; /* Return value */

FUNC_ENTER_PACKAGE

Expand Down Expand Up @@ -2746,8 +2744,7 @@ H5C__reconstruct_cache_entry(const H5F_t *f, H5C_t *cache_ptr, hsize_t *buf_size
/* Sanity checks */
assert(pf_entry_ptr->size > 0 && pf_entry_ptr->size < H5C_MAX_ENTRY_SIZE);

/* Update buffer pointer and buffer len */
*buf_size -= (hsize_t)(p - *buf);
/* Update buffer pointer */
*buf = p;

ret_value = pf_entry_ptr;
Expand Down
Loading
Loading