summaryrefslogtreecommitdiffstats
path: root/src/H5FD.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2011-04-21 11:53:45 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2011-04-21 11:53:45 (GMT)
commit7c921910d079b49107e50bf7dda97c73cb66b19d (patch)
treee9eb9fb5bab36c65a0eeba037f0a3948090b3a6c /src/H5FD.c
parentffed1cd0cf5703947e2928301a716085b47e8a1d (diff)
downloadhdf5-7c921910d079b49107e50bf7dda97c73cb66b19d.zip
hdf5-7c921910d079b49107e50bf7dda97c73cb66b19d.tar.gz
hdf5-7c921910d079b49107e50bf7dda97c73cb66b19d.tar.bz2
[svn-r20587] Description:
Initial commit of John Biddescomb's VFD & MPI tweaks. Tested on: None (yet) (h5committest not required for this branch)
Diffstat (limited to 'src/H5FD.c')
-rw-r--r--src/H5FD.c35
1 files changed, 4 insertions, 31 deletions
diff --git a/src/H5FD.c b/src/H5FD.c
index d0683e1..000d267 100644
--- a/src/H5FD.c
+++ b/src/H5FD.c
@@ -43,17 +43,6 @@
#include "H5Eprivate.h" /* Error handling */
#include "H5Fpkg.h" /* File access */
#include "H5FDpkg.h" /* File Drivers */
-#include "H5FDcore.h" /* Files stored entirely in memory */
-#include "H5FDfamily.h" /* File families */
-#include "H5FDlog.h" /* sec2 driver with I/O logging (for debugging) */
-#include "H5FDmpi.h" /* MPI-based file drivers */
-#include "H5FDmulti.h" /* Usage-partitioned file family */
-#include "H5FDsec2.h" /* POSIX unbuffered file I/O */
-#include "H5FDstdio.h" /* Standard C buffered I/O */
-#ifdef H5_HAVE_WINDOWS
-#include "H5FDwindows.h" /* Windows buffered I/O */
-#endif
-#include "H5FDdirect.h" /* Direct file I/O */
#include "H5Iprivate.h" /* IDs */
#include "H5MMprivate.h" /* Memory management */
#include "H5Pprivate.h" /* Property lists */
@@ -201,26 +190,6 @@ H5FD_term_interface(void)
if(H5_interface_initialize_g) {
if((n=H5I_nmembers(H5I_VFL))!=0) {
H5I_clear_type(H5I_VFL, FALSE, FALSE);
-
- /* Reset the VFL drivers, if they've been closed */
- if(H5I_nmembers(H5I_VFL)==0) {
- H5FD_sec2_term();
-#ifdef H5_HAVE_DIRECT
- H5FD_direct_term();
-#endif
- H5FD_log_term();
- H5FD_stdio_term();
-#ifdef H5_HAVE_WINDOWS
- H5FD_windows_term();
-#endif
- H5FD_family_term();
- H5FD_core_term();
- H5FD_multi_term();
-#ifdef H5_HAVE_PARALLEL
- H5FD_mpio_term();
- H5FD_mpiposix_term();
-#endif /* H5_HAVE_PARALLEL */
- } /* end if */
} else {
H5I_dec_type_ref(H5I_VFL);
H5_interface_initialize_g = 0;
@@ -254,6 +223,10 @@ H5FD_free_cls(H5FD_class_t *cls)
{
FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5FD_free_cls)
+ // Give the File driver a chance to free singletons or other objects
+ // which will become invalid once the class structure is freed
+ if (cls && cls->terminate) cls->terminate();
+
H5MM_xfree(cls);
FUNC_LEAVE_NOAPI(SUCCEED)