diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2012-10-23 16:05:06 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2012-10-23 16:05:06 (GMT) |
commit | a2aba62fe028d5b5bf6fafb5d0071d865f502863 (patch) | |
tree | f33ce72ddfa0f474dcecd3cc2eedd587e623aa95 | |
parent | 55d3172d229b29ade3899e065460c93d216d1f7c (diff) | |
download | hdf5-a2aba62fe028d5b5bf6fafb5d0071d865f502863.zip hdf5-a2aba62fe028d5b5bf6fafb5d0071d865f502863.tar.gz hdf5-a2aba62fe028d5b5bf6fafb5d0071d865f502863.tar.bz2 |
[svn-r22950] Purpose: Fix testflushrefresh failures
Description:
Since the "flush me last" code was introduced, it was no longer possible for the
superblock to be flushed to disk without flushing the entire file. This made it
impossible to open a file concurrently, even after calling H5Gflush on the root
group. The superblock was originally supposed to be flushed every time any
object was explicitly flushed with H5*flush.
Modified H5C_flush_cache to ignore flush me last flag if the entry is marked for
flush (which is done either by a tag for H5*flush or to free up space in cache)
and the flush marked entries flag is set.
Tested: ummon
-rw-r--r-- | src/H5C.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -1893,9 +1893,10 @@ H5C_flush_cache(H5F_t *f, hid_t primary_dxpl_id, hid_t secondary_dxpl_id, unsign if ( ( ( ! flush_marked_entries ) || ( entry_ptr->flush_marker ) ) && ( ( ! entry_ptr->flush_me_last ) || - ( ( entry_ptr->flush_me_last ) && - ( cache_ptr->num_last_entries >= - cache_ptr->slist_len ) ) ) ) { + ( cache_ptr->num_last_entries >= + cache_ptr->slist_len ) || + ( flush_marked_entries && + entry_ptr->flush_marker ) ) ) { if ( entry_ptr->is_protected ) { |