feat: add native SWMR support for concurrent read/write#61
Draft
14NGiestas wants to merge 20 commits intogeospace-code:mainfrom
Draft
feat: add native SWMR support for concurrent read/write#6114NGiestas wants to merge 20 commits intogeospace-code:mainfrom
14NGiestas wants to merge 20 commits intogeospace-code:mainfrom
Conversation
- Add iterate and visit procedures for HDF5 file traversal - Add iterate.f90 and visit.f90 source files - Fix line truncation issue in write.f90 - Fix error message typo (filena -> filename) - Add datatype.f90 and deflate.f90 to CMakeLists.txt - Add tests for iterate and visit procedures - Various bugfixes from review
…erate/visit Replace HDF5 Fortran wrappers with direct HDF5 Fortran module calls to fix SIGSEGV with Intel ifx and undefined references on older HDF5 versions. Changes: - Use H5Literate_f and H5Ovisit_f Fortran wrappers (version-independent) - Remove C API templates (.f90.in files) and version-specific configure logic - Use H5Oget_info_by_name_f for type detection (handles all HDF5 versions) - Use h5o_info_t from HDF5 Fortran module with H5Ovisit_f callback - Use h5l_info_t from HDF5 Fortran module with H5Literate_f callback - Fix fpm.toml duplicate [dependencies] section - Remove nix shell files (preserved in feature/nix-shells branch) Tested: - GCC 9-15: pass (with -Werror) - Intel ifx: iterate/visit pass without segfault - HDF5 1.10-1.14: pass - fpm: 8 visit objects, 4 iterate objects correct
7ee40a2 to
59520a1
Compare
098036a to
c009008
Compare
7c161ef to
073e381
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implemented SWMR (Single Writer Multiple Reader) support for concurrent file access.
Key Features
swmrflag to%open().H5F_LIBVER_LATESTfor SWMR compatibility.%flush(dataset)- flushes dataset to disk.%refresh(dataset)- refreshes reader's view.Notes
Tests
test_swmr: Main testtest_swmr_writer: Writes 5 iterationstest_swmr_reader: Reads concurrently