Quincey Koziol
9fd88560d5
Refactor threading and other concurrency support ( #4469 )
...
Complete overhaul of the concurrency-related aspects of the library (threading, atomics, locking, etc.), adding private routines in the H5TS package to allow internal algorithms to use all of these capabilities.
Adds many new features & components in the H5TS package that are equivalent to common concurrency data structures and capabilities: "regular" and recursive mutices, condition variables, semaphores, thread barriers, 'once' support, thread pools, atomic variables, thread-local keys, and spawning & joining internal threads.
Now supports C11, pthreads, and Windows threading for all H5TS capabilities, except the recursive readers/writers lock, which is not supported on Windows (because Windows threads don't provide a callback on thread-local variable deletion).
The "global" API lock is switched to use a recursive mutex from the H5TS package, instead of its own variant.
API context code (H5CX package) and error stacks (H5E package) now use the common thread-local info, instead of their own variants.
Subfiling code is switched from using Mercury threading features to the new internal H5TS features.
Removes the mercury threading code.
Adds a configure option (--enable-threads / HDF5_ENABLE_THREADS), enabled by default, to control whether threading is enabled within the library.
2024-07-31 12:34:43 -05:00
..
2024-07-05 12:38:26 -07:00
2024-05-30 22:12:30 -05:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2023-09-26 11:38:07 -07:00
2024-03-16 19:43:47 -07:00
2022-03-31 10:42:30 -05:00
2024-06-20 14:01:43 -07:00
2024-05-23 16:44:33 -05:00
2024-06-20 14:01:43 -07:00
2024-07-24 10:42:58 -05:00
2023-09-15 15:13:18 -07:00
2024-02-23 09:06:06 -08:00
2024-03-22 21:31:16 -05:00
2024-06-20 14:01:43 -07:00
2024-02-23 09:06:06 -08:00
2024-03-10 16:17:37 -07:00
2024-06-20 14:01:43 -07:00
2024-07-31 12:34:43 -05:00
2024-03-31 22:43:36 -05:00
2024-03-29 14:19:58 -05:00
2024-03-31 22:43:36 -05:00
2024-06-20 14:01:43 -07:00
2024-03-27 20:26:08 -07:00
2024-03-22 21:31:16 -05:00
2024-06-20 14:01:43 -07:00
2024-03-22 21:31:16 -05:00
2024-06-20 14:01:43 -07:00
2023-10-03 09:01:28 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2023-09-15 15:13:18 -07:00
2024-07-02 09:26:05 -05:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-03-09 09:06:10 -08:00
2024-03-09 09:06:10 -08:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2023-09-15 15:13:18 -07:00
2023-09-05 13:11:52 -07:00
2024-06-20 14:01:43 -07:00
2023-06-29 12:13:29 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2022-11-01 16:02:27 -05:00
2022-11-01 16:02:27 -05:00
2022-11-01 16:02:27 -05:00
2022-11-01 16:02:27 -05:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-03-22 21:31:16 -05:00
2021-02-17 08:52:04 -06:00
2024-06-20 14:01:43 -07:00
2023-06-29 12:13:29 -07:00
2024-03-09 09:06:10 -08:00
2023-09-15 15:13:18 -07:00
2023-09-15 15:13:18 -07:00
2023-09-08 18:06:23 -05:00
2023-09-15 15:13:18 -07:00
2023-09-08 18:06:23 -05:00
2023-09-08 18:06:23 -05:00
2023-09-08 18:06:23 -05:00
2023-09-08 18:06:23 -05:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2023-09-08 18:06:23 -05:00
2023-09-08 18:06:23 -05:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2024-05-23 16:44:33 -05:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2024-03-09 09:06:10 -08:00
2023-06-29 12:13:29 -07:00
2023-06-29 12:13:29 -07:00
2023-09-08 18:06:23 -05:00
2023-09-15 15:13:18 -07:00
2023-09-05 13:11:52 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-07-31 12:34:43 -05:00
2024-06-20 14:01:43 -07:00
2022-11-01 16:02:27 -05:00
2023-06-29 12:13:29 -07:00
2024-06-20 14:01:43 -07:00
2024-04-07 15:15:25 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-07-31 12:34:43 -05:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2022-03-26 14:30:53 -05:00
2021-09-29 13:28:12 -05:00
2022-09-17 09:49:38 -07:00
2021-03-04 06:29:10 -06:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2017-01-26 14:34:12 -05:00
2017-01-26 14:34:12 -05:00
2024-03-22 21:31:16 -05:00
2024-06-20 14:01:43 -07:00
2024-06-21 09:02:07 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2023-11-22 07:51:30 -06:00
2023-06-29 12:13:29 -07:00
2024-06-20 14:01:43 -07:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2022-11-01 16:02:27 -05:00
2024-04-07 15:15:25 -07:00
2021-12-07 08:27:29 -06:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2021-12-07 08:27:29 -06:00
2024-04-07 15:15:25 -07:00
2024-06-20 14:01:43 -07:00
2024-03-22 21:31:16 -05:00
2024-05-17 11:05:27 -05:00
2024-04-08 07:58:13 -07:00
2023-06-29 12:33:46 -07:00
2023-08-02 17:46:26 -05:00
2023-09-15 15:13:18 -07:00
2022-11-01 16:02:27 -05:00
2023-06-29 12:13:29 -07:00
2024-04-24 08:32:28 -07:00
2022-11-01 16:02:27 -05:00
2024-03-22 21:31:16 -05:00
2023-06-29 12:13:29 -07:00
2022-11-01 16:02:27 -05:00
2024-03-17 18:47:59 -07:00
2024-03-25 07:46:12 -05:00
2024-03-22 21:31:16 -05:00
2024-03-22 21:31:16 -05:00
2024-03-22 21:31:16 -05:00
2022-11-01 16:02:27 -05:00
2024-03-22 21:31:16 -05:00
2024-03-22 21:31:16 -05:00
2024-07-29 12:57:36 -05:00
2023-11-13 13:49:38 -06:00
2023-09-15 15:13:18 -07:00
2023-09-15 15:13:18 -07:00
2024-06-20 14:01:43 -07:00
2024-06-07 09:04:40 -07:00
2023-09-15 15:13:18 -07:00
2023-11-13 13:49:38 -06:00
2024-03-09 09:06:10 -08:00
2024-07-24 10:42:58 -05:00
2024-06-20 14:01:43 -07:00
2023-11-13 13:49:38 -06:00
2023-06-29 12:33:46 -07:00
2024-03-28 12:07:52 -07:00
2023-11-13 13:49:38 -06:00
2023-06-28 08:31:32 -07:00
2024-05-01 05:39:01 -07:00
2023-09-15 15:13:18 -07:00
2024-04-07 15:15:25 -07:00
2024-04-07 15:15:25 -07:00
2024-06-20 14:01:43 -07:00
2024-04-07 14:09:23 -07:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-07-31 12:34:43 -05:00
2024-04-07 15:15:25 -07:00
2023-11-13 13:49:38 -06:00
2024-07-24 10:42:58 -05:00
2024-03-09 09:06:10 -08:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2023-09-15 15:13:18 -07:00
2023-09-15 15:13:18 -07:00
2023-09-15 15:13:18 -07:00
2023-09-15 15:13:18 -07:00
2023-09-15 15:13:18 -07:00
2023-09-05 13:11:52 -07:00
2024-06-20 14:01:43 -07:00
2023-09-08 18:06:23 -05:00
2023-09-08 18:06:23 -05:00
2024-04-07 14:09:23 -07:00
2022-11-01 16:02:27 -05:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00
2024-06-20 14:01:43 -07:00