diff options
-rw-r--r-- | src/H5.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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 */ |