summaryrefslogtreecommitdiffstats
path: root/src/H5.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1999-02-18 16:21:34 (GMT)
committerRobb Matzke <matzke@llnl.gov>1999-02-18 16:21:34 (GMT)
commit37cfaf1665f1a036c4a907367c7e25b7ac849013 (patch)
treecbdea15114da44de5f1d74057fdb8de449d18f41 /src/H5.c
parent901051cecb91bffb1920c0b31bec2f0661363a1a (diff)
downloadhdf5-37cfaf1665f1a036c4a907367c7e25b7ac849013.zip
hdf5-37cfaf1665f1a036c4a907367c7e25b7ac849013.tar.gz
hdf5-37cfaf1665f1a036c4a907367c7e25b7ac849013.tar.bz2
[svn-r1078] Changes since 19990215
---------------------- ./src/H5.c Fixed more dependency problems in H5_term_library(). There was a bug in the previous version that could cause the wrong EOF marker to be written to the boot block under certain circumstances. Hopefully this fixes it although I don't ready access to a test case (Mark Miller will test it). ./src/H5F.c ./src/H5Fprivate.h Added an H5F_close_all() that is similar to H5F_term_interface() but which doesn't close the interface. Files that don't have open object headers are closed, others are delayed until all object headers close. All files are flushed. ./src/H5ACprivate.h ./src/H5Bprivate.h ./src/H5Dprivate.h ./src/H5Eprivate.h ./src/H5Fprivate.h ./src/H5Gpkg.h ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5HGprivate.h ./src/H5HLprivate.h ./src/H5Iprivate.h ./src/H5MFprivate.h ./src/H5MMprivate.h ./src/H5Oprivate.h ./src/H5Pprivate.h ./src/H5Ppublic.h ./src/H5RAprivate.h ./src/H5Sprivate.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tprivate.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zprivate.h ./src/H5private.h ./src/H5public.h Reindented after __DLL__ was added.
Diffstat (limited to 'src/H5.c')
-rw-r--r--src/H5.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/H5.c b/src/H5.c
index b9bda39..822804b 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -148,11 +148,13 @@ H5_term_library(void)
* because it's cache depends on almost all other meta object
* packages and those packages depend on H5O which depends on H5F
* (because H5F_close() can delay until all object headers are
- * closed). We handle this cycle by closing the H5F interface,
- * which flushes the cache of all files, breaking any cycles.
+ * closed). We handle this cycle by calling H5F_close() for all
+ * files, which flushes the meta data caches and updates the file
+ * boot block but doesn't actually finalize the close until all
+ * open objects are closed by the H5*_term_interface() functions
+ * below. Once that happens we can close the H5F interface.
*/
- H5F_term_interface(-1);
- H5F_term_interface(0);
+ H5F_close_all();
/* Function What depends on it? */
/*------------------------- ------------------------------- */
@@ -166,8 +168,8 @@ H5_term_library(void)
H5S_term_interface(-1); /* */
H5T_native_close(-1); /* D RA */
H5T_term_interface(-1); /* D RA */
- H5F_term_interface(-1); /* G T */
H5P_term_interface(-1); /* D */
+ H5F_term_interface(-1); /* A D G S T */
H5I_term_interface(-1); /* A D F G P RA S T TB Z */
/*------------------------- --------------------------------- */