diff options
author | David Young <dyoung@hdfgroup.org> | 2020-01-10 20:22:06 (GMT) |
---|---|---|
committer | David Young <dyoung@hdfgroup.org> | 2020-01-10 20:22:06 (GMT) |
commit | 7a0a2a0b5dc62f0341c1d3628ae9ff53dcea086d (patch) | |
tree | 058e0e5da007f5a9ea6d8cb3957de92cc1179103 /src/H5FDvfd_swmr.c | |
parent | cdbdc33c5a5eb2bbca91167234c465c2b1f31ded (diff) | |
download | hdf5-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