summaryrefslogtreecommitdiffstats
path: root/src/H5F.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2005-09-12 06:02:55 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2005-09-12 06:02:55 (GMT)
commit5ffde305cdf2c167234f1ffb38adf557380f2234 (patch)
treef211c5a72d7332885ab83eca1270bcb131e1c6c9 /src/H5F.c
parent966f5f42368663fb589807ae28b2887b98ed8067 (diff)
downloadhdf5-5ffde305cdf2c167234f1ffb38adf557380f2234.zip
hdf5-5ffde305cdf2c167234f1ffb38adf557380f2234.tar.gz
hdf5-5ffde305cdf2c167234f1ffb38adf557380f2234.tar.bz2
[svn-r11384] Purpose:
Code cleanup Description: Merge back changes from "compact group" work that improve the infrastructure of the library and may impact others. In this round of merging, that includes: - Move datatype allocation into single internal routine, instead of duplicated code that was spread out in a dozen or so places. - Clean up guts of object header routines (H5O_*) to allow for some of the fancieroperations that need to be performed on groups, along with some general improvements. - Added a new error code - Some minor cleanups in other code.... Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Mac OS X
Diffstat (limited to 'src/H5F.c')
-rw-r--r--src/H5F.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/src/H5F.c b/src/H5F.c
index 090aa83..f9c1784 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -2412,6 +2412,25 @@ H5F_flush(H5F_t *f, hid_t dxpl_id, H5F_scope_t scope, unsigned flags)
if (H5D_flush(f, dxpl_id, flags) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush dataset cache")
+ /* flush (and invalidate) the entire meta data cache */
+ /*
+ * FIXME: This should be CLEAR_ONLY for non-captain processes.
+ * Need to fix the H5G_mkroot() call so that only the captain
+ * allocates object headers (calls the H5O_init function...via a
+ * lot of other functions first)....
+ */
+
+ H5AC_flags = 0;
+
+ if ( (flags & H5F_FLUSH_INVALIDATE) != 0 )
+ H5AC_flags |= H5AC__FLUSH_INVALIDATE_FLAG;
+
+ if ( (flags & H5F_FLUSH_CLEAR_ONLY) != 0 )
+ H5AC_flags |= H5AC__FLUSH_CLEAR_ONLY_FLAG;
+
+ if (H5AC_flush(f, dxpl_id, H5AC_flags) < 0)
+ HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush meta data cache")
+
/*
* If we are invalidating everything (which only happens just before
* the file closes), release the unused portion of the metadata and
@@ -2467,25 +2486,6 @@ H5F_flush(H5F_t *f, hid_t dxpl_id, H5F_scope_t scope, unsigned flags)
#endif /* H5_HAVE_FPHDF5 */
} /* end if */
- /* flush (and invalidate) the entire meta data cache */
- /*
- * FIXME: This should be CLEAR_ONLY for non-captain processes.
- * Need to fix the H5G_mkroot() call so that only the captain
- * allocates object headers (calls the H5O_init function...via a
- * lot of other functions first)....
- */
-
- H5AC_flags = 0;
-
- if ( (flags & H5F_FLUSH_INVALIDATE) != 0 )
- H5AC_flags |= H5AC__FLUSH_INVALIDATE_FLAG;
-
- if ( (flags & H5F_FLUSH_CLEAR_ONLY) != 0 )
- H5AC_flags |= H5AC__FLUSH_CLEAR_ONLY_FLAG;
-
- if (H5AC_flush(f, dxpl_id, H5AC_flags) < 0)
- HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush meta data cache")
-
/* Write the superblock to disk */
if (H5F_write_superblock(f, dxpl_id, NULL) != SUCCEED)
HGOTO_ERROR(H5E_CACHE, H5E_WRITEERROR, FAIL, "unable to write superblock to file")