summaryrefslogtreecommitdiffstats
path: root/src/H5FDvfd_swmr.c
diff options
context:
space:
mode:
authorDavid Young <dyoung@hdfgroup.org>2020-01-10 20:22:06 (GMT)
committerDavid Young <dyoung@hdfgroup.org>2020-01-10 20:22:06 (GMT)
commit7a0a2a0b5dc62f0341c1d3628ae9ff53dcea086d (patch)
tree058e0e5da007f5a9ea6d8cb3957de92cc1179103 /src/H5FDvfd_swmr.c
parentcdbdc33c5a5eb2bbca91167234c465c2b1f31ded (diff)
downloadhdf5-7a0a2a0b5dc62f0341c1d3628ae9ff53dcea086d.zip
hdf5-7a0a2a0b5dc62f0341c1d3628ae9ff53dcea086d.tar.gz
hdf5-7a0a2a0b5dc62f0341c1d3628ae9ff53dcea086d.tar.bz2
H5F_vfd_swmr_reader_end_of_tick(),
compares both new and old shadow indices and calls H5PB_remove_entry() on each entry that was in the old index but is not in the new. Ever since H5PB_remove_entry() started removing shadow index entries, it has been possible for H5F_vfd_swmr_reader_end_of_tick() to walk past the end of the new shadow index or even to skip entries in the new index. Sometimes an assertion failed when that happened. I have restructured the code in H5F_vfd_swmr_reader_end_of_tick() so that it compares the old and new indices, gathering a list of removed pages, in one step. In the next step, it processes the list of removed pages, calling H5PB_remove_entry() on each page. In the step after that, it notifies the metadata cache of each removed page. This fixes the bug I described, above.
Diffstat (limited to 'src/H5FDvfd_swmr.c')
0 files changed, 0 insertions, 0 deletions