summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/H5.c b/src/H5.c
index 1bb75ad..33ac340 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -284,12 +284,12 @@ H5_term_library(void)
n) : n))
do {
- pending = 0;
+ pending = 0;
/* Try to organize these so the "higher" level components get shut
* down before "lower" level components that they might rely on. -QAK
*/
- pending += DOWN(L);
+ pending += DOWN(L);
/* Close the "top" of various interfaces (IDs, etc) but don't shut
* down the whole interface yet, so that the object header messages
@@ -300,7 +300,7 @@ H5_term_library(void)
pending += DOWN(A_top);
pending += DOWN(D_top);
pending += DOWN(G_top);
- pending += DOWN(R_top);
+ pending += DOWN(R_top);
pending += DOWN(S_top);
pending += DOWN(T_top);
@@ -308,6 +308,11 @@ H5_term_library(void)
if(pending == 0)
pending += DOWN(F);
+ /* Don't shut down the property list code until all objects that might
+ * use property lists are shut down */
+ if(pending == 0)
+ pending += DOWN(P);
+
/* Wait to shut down the "bottom" of various interfaces until the
* files are closed, so pieces of the file can be serialized
* correctly.
@@ -333,7 +338,6 @@ H5_term_library(void)
if(pending == 0) {
pending += DOWN(AC);
pending += DOWN(Z);
- pending += DOWN(P);
pending += DOWN(FD);
pending += DOWN(PL);
/* Don't shut down the error code until other APIs which use it are shut down */