summaryrefslogtreecommitdiffstats
path: root/src/H5FD.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5FD.c')
-rw-r--r--src/H5FD.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/H5FD.c b/src/H5FD.c
index 72a806d..8c1f834 100644
--- a/src/H5FD.c
+++ b/src/H5FD.c
@@ -156,6 +156,32 @@ H5FD_term_interface(void)
if (interface_initialize_g) {
if ((n=H5I_nmembers(H5I_VFL))) {
H5I_clear_group(H5I_VFL, FALSE);
+
+ /* Reset the VFL drivers, if they've been closed */
+ if(H5I_nmembers(H5I_VFL)==0) {
+ H5FD_sec2_term();
+ H5FD_log_term();
+ H5FD_stdio_term();
+ H5FD_family_term();
+#ifdef H5_HAVE_GASS
+ H5FD_gass_term();
+#endif
+#ifdef H5_HAVE_SRB
+ H5FD_srb_term();
+#endif
+ H5FD_core_term();
+ H5FD_multi_term();
+#ifdef H5_HAVE_PARALLEL
+ H5FD_mpio_term();
+ H5FD_mpiposix_term();
+#ifdef H5_HAVE_FPHDF5
+ H5FD_fphdf5_term();
+#endif /* H5_HAVE_FPHDF5 */
+#endif /* H5_HAVE_PARALLEL */
+#ifdef H5_HAVE_STREAM
+ H5FD_stream_term();
+#endif
+ } /* end if */
} else {
H5I_destroy_group(H5I_VFL);
interface_initialize_g = 0;