-
-
Notifications
You must be signed in to change notification settings - Fork 265
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
Changes from 250 commits
ac6e962
c912b32
c1fd611
35cb735
f0e9444
84636ba
c375801
f871a21
e894410
23b0ff6
47f7b3b
120571b
b5ebf19
f21ef34
5c712c7
9c64474
2f4d0ab
acda444
30992ab
1956de7
7641fe8
febca66
fb78cb1
faba6d9
76f91a9
522b61f
d006a78
a8ebe75
abe665f
da559fc
53bd144
3d070b3
449eefc
8b6a002
5956567
8fb0ab3
9a3d00c
0541e9e
654eeac
6b3de74
d7c60fe
0342ec6
df2d5e1
41a9ccf
12f29b7
3adbe90
ec62652
034c855
c5ec61a
bc8f2a2
9876853
996e203
f772256
fbf1502
7ca7ae4
cda59de
6e9ffb9
a05a364
d79f09d
c4d61b9
af1d90d
fdc614a
de4be96
ec68fb4
7871031
1aedb39
b72a4c3
d1db8aa
b49be63
c1c98be
ba0ed23
66beee8
0d32262
3ad494f
36c8ff0
dc33afb
b356346
9fbc4dc
e9a784c
1a5bbd5
16ab253
41ab4b8
8d21941
da9b6f0
afbdeba
762f7d7
0a9e269
d5642c0
23ab433
c408b25
1b2861a
1dc3983
9755a27
c98f90a
fc8f94b
9190f91
3b4016a
7474b4d
58cbc5c
76ee4ea
6eef1a2
d2ee4cd
015c029
909015c
9e58936
218f662
981ec35
06bc0a8
dbe90c8
7746097
8ced6e4
9725b38
d4fe1dd
cf94f43
35bd789
712d4e0
b16c9cb
0aae351
b2ed8f9
476d0f0
aaa7868
2cacd25
b43305e
95d6a8c
a7da18c
67551c6
847f473
14cce82
714437f
421378a
8cf564c
0a40eb8
7778b78
8c47af8
92d8ca7
a3e7bfa
e3dd94f
7d0e3a3
0d55938
92eb3d3
7b3b3bd
9d62227
958eaa3
6636db2
4573806
d5f5735
afae630
b3b1584
ce70682
a509273
4f8305e
58c75f3
b2e6e4d
e5f8cbd
1c681af
d95abf4
44ec13c
f13fde9
a1445c4
d3a8f6a
8c0d675
68a5541
b2c72a0
fcfd7cd
91c9b3c
edbf13c
cc77afe
fcc71dd
d8f1b74
287c78f
defb041
1152d93
bb08384
877ce80
e41514e
e0b67a2
d991219
aa50796
64a28b3
2f379d2
4c9b00c
b116bd7
153c56a
ee57b11
c25aac4
0d32364
82a0ea9
f07868d
f3cae8f
2eb9ccd
0c1eb7d
8d0a602
1031b19
729a6f5
f7915dc
0fd9afc
2c1cb90
9e41db9
688cde5
69d3d28
94b1b77
4426f03
8e7ccf7
cfdde80
5832f7d
a94f074
2af59a1
a2e0f5b
affe3a2
b14ce95
2473d07
5226226
84ae455
6bc58bc
ae27cd1
e616ecc
9ba65be
ff8471e
30ab7bd
fa313f0
5be85c8
1fd01b4
c805c2f
dcabd89
51d1f5a
883cbbe
8e52cfa
da26810
d42953e
0faf451
b228138
2c2993d
b209735
594c12d
5cbfa4d
898a7a9
e37d23a
7d28ecd
56d2f52
18fe722
58a2310
45150ef
4363094
f77bc18
c932bda
1ee9892
4951361
92b2bc5
153226e
4050130
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added new Github actions for testing the concurrency configuration. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -985,6 +985,59 @@ if (HDF5_ENABLE_THREADSAFE) | |
set (H5_HAVE_THREADSAFE 1) | ||
endif () | ||
|
||
#----------------------------------------------------------------------------- | ||
# Option to use multi-threaded concurrency | ||
#----------------------------------------------------------------------------- | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
#----------------------------------------------------------------------------- | ||
|
There was a problem hiding this comment.
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.