From 89d1b13319bc7790333236fb607d7d7f18d088b8 Mon Sep 17 00:00:00 2001 From: Neil Fortner Date: Thu, 16 Mar 2017 10:01:33 -0500 Subject: Modify plugin to use H5VL_daosm_term as the plugin's terminate callback, now called when the plugin is closed (see merge from vol branch). Removed cal to H5Idec_ref from H5VL_daosm_term. Removed H5VLdaosm_term from examples. --- examples/h5dsm_attr_create.c | 4 ---- examples/h5dsm_attr_open.c | 4 ---- examples/h5dsm_attr_read.c | 4 ---- examples/h5dsm_attr_write.c | 4 ---- examples/h5dsm_dset_create.c | 4 ---- examples/h5dsm_dset_open.c | 4 ---- examples/h5dsm_dset_r1m.c | 4 ---- examples/h5dsm_dset_read.c | 4 ---- examples/h5dsm_dset_rpartial.c | 4 ---- examples/h5dsm_dset_w1m.c | 4 ---- examples/h5dsm_dset_wpartial.c | 4 ---- examples/h5dsm_dset_write.c | 4 ---- examples/h5dsm_file_create.c | 4 ---- examples/h5dsm_file_open.c | 4 ---- examples/h5dsm_group_create.c | 4 ---- examples/h5dsm_group_open.c | 4 ---- examples/h5dsm_link_exists.c | 4 ---- examples/h5dsm_slink_create.c | 4 ---- examples/h5dsm_ttconv.c | 4 ---- src/H5VLdaosm.c | 19 +++++++++---------- 20 files changed, 9 insertions(+), 86 deletions(-) diff --git a/examples/h5dsm_attr_create.c b/examples/h5dsm_attr_create.c index 099bffc..56e8988 100644 --- a/examples/h5dsm_attr_create.c +++ b/examples/h5dsm_attr_create.c @@ -71,9 +71,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -86,7 +83,6 @@ error: H5Fclose(file); H5Sclose(space); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_attr_open.c b/examples/h5dsm_attr_open.c index c0f54c5..0ab686d 100644 --- a/examples/h5dsm_attr_open.c +++ b/examples/h5dsm_attr_open.c @@ -65,9 +65,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -79,7 +76,6 @@ error: H5Oclose(obj); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_attr_read.c b/examples/h5dsm_attr_read.c index 52aeecd..eab2d11 100644 --- a/examples/h5dsm_attr_read.c +++ b/examples/h5dsm_attr_read.c @@ -88,9 +88,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -102,7 +99,6 @@ error: H5Oclose(obj); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_attr_write.c b/examples/h5dsm_attr_write.c index e130613..4b83752 100644 --- a/examples/h5dsm_attr_write.c +++ b/examples/h5dsm_attr_write.c @@ -82,9 +82,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -96,7 +93,6 @@ error: H5Oclose(obj); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_dset_create.c b/examples/h5dsm_dset_create.c index a0a8fb7..ad0b33d 100644 --- a/examples/h5dsm_dset_create.c +++ b/examples/h5dsm_dset_create.c @@ -57,9 +57,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -71,7 +68,6 @@ error: H5Fclose(file); H5Sclose(space); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_dset_open.c b/examples/h5dsm_dset_open.c index f30cb59..3c8f6e1 100644 --- a/examples/h5dsm_dset_open.c +++ b/examples/h5dsm_dset_open.c @@ -108,9 +108,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(def_dapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -127,7 +124,6 @@ error: H5Pclose(dapl); H5Pclose(def_dcpl); H5Pclose(def_dapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_dset_r1m.c b/examples/h5dsm_dset_r1m.c index 0b53908..4f1899c 100644 --- a/examples/h5dsm_dset_r1m.c +++ b/examples/h5dsm_dset_r1m.c @@ -95,9 +95,6 @@ int main(int argc, char *argv[]) { free(nbuf); nbuf = NULL; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -110,7 +107,6 @@ error: H5Fclose(file); H5Fclose(nfile); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; free(buf); diff --git a/examples/h5dsm_dset_read.c b/examples/h5dsm_dset_read.c index 91d1c8c..c2b26f9 100644 --- a/examples/h5dsm_dset_read.c +++ b/examples/h5dsm_dset_read.c @@ -74,9 +74,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -87,7 +84,6 @@ error: H5Dclose(dset); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_dset_rpartial.c b/examples/h5dsm_dset_rpartial.c index 9888de4..a4ebced 100644 --- a/examples/h5dsm_dset_rpartial.c +++ b/examples/h5dsm_dset_rpartial.c @@ -129,9 +129,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -144,7 +141,6 @@ error: H5Sclose(file_space); H5Sclose(mem_space); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_dset_w1m.c b/examples/h5dsm_dset_w1m.c index 54640d8..eb5f4be 100644 --- a/examples/h5dsm_dset_w1m.c +++ b/examples/h5dsm_dset_w1m.c @@ -94,9 +94,6 @@ int main(int argc, char *argv[]) { free(buf); buf = NULL; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -110,7 +107,6 @@ error: H5Fclose(nfile); H5Sclose(space); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; free(buf); diff --git a/examples/h5dsm_dset_wpartial.c b/examples/h5dsm_dset_wpartial.c index 0056443..6382551 100644 --- a/examples/h5dsm_dset_wpartial.c +++ b/examples/h5dsm_dset_wpartial.c @@ -116,9 +116,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -131,7 +128,6 @@ error: H5Sclose(file_space); H5Sclose(mem_space); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_dset_write.c b/examples/h5dsm_dset_write.c index bc31278..7773a25 100644 --- a/examples/h5dsm_dset_write.c +++ b/examples/h5dsm_dset_write.c @@ -68,9 +68,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -81,7 +78,6 @@ error: H5Dclose(dset); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_file_create.c b/examples/h5dsm_file_create.c index cbf8e8e..f989c7e 100644 --- a/examples/h5dsm_file_create.c +++ b/examples/h5dsm_file_create.c @@ -34,9 +34,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -46,7 +43,6 @@ error: H5E_BEGIN_TRY { H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_file_open.c b/examples/h5dsm_file_open.c index a0e377d..ce5905a 100644 --- a/examples/h5dsm_file_open.c +++ b/examples/h5dsm_file_open.c @@ -44,9 +44,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -57,7 +54,6 @@ error: H5E_BEGIN_TRY { H5Fclose_ff(file, -1); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_group_create.c b/examples/h5dsm_group_create.c index 3a6ab97..d9a5d42 100644 --- a/examples/h5dsm_group_create.c +++ b/examples/h5dsm_group_create.c @@ -50,9 +50,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -63,7 +60,6 @@ error: H5Gclose(grp); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_group_open.c b/examples/h5dsm_group_open.c index e8835a0..1ede6de 100644 --- a/examples/h5dsm_group_open.c +++ b/examples/h5dsm_group_open.c @@ -52,9 +52,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -65,7 +62,6 @@ error: H5Gclose(grp); H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_link_exists.c b/examples/h5dsm_link_exists.c index e6ba47b..6672aeb 100644 --- a/examples/h5dsm_link_exists.c +++ b/examples/h5dsm_link_exists.c @@ -53,9 +53,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -65,7 +62,6 @@ error: H5E_BEGIN_TRY { H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_slink_create.c b/examples/h5dsm_slink_create.c index 6e8fa70..01862de 100644 --- a/examples/h5dsm_slink_create.c +++ b/examples/h5dsm_slink_create.c @@ -48,9 +48,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -60,7 +57,6 @@ error: H5E_BEGIN_TRY { H5Fclose(file); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/examples/h5dsm_ttconv.c b/examples/h5dsm_ttconv.c index 6aa927e..ddfa847 100644 --- a/examples/h5dsm_ttconv.c +++ b/examples/h5dsm_ttconv.c @@ -888,9 +888,6 @@ int main(int argc, char *argv[]) { if(H5Pclose(fapl) < 0) ERROR; - if(H5VLdaosm_term() < 0) - ERROR; - printf("Success\n"); (void)MPI_Finalize(); @@ -918,7 +915,6 @@ error: H5Tclose(mem_type_c); H5Sclose(space); H5Pclose(fapl); - H5VLdaosm_term(); } H5E_END_TRY; (void)MPI_Finalize(); diff --git a/src/H5VLdaosm.c b/src/H5VLdaosm.c index 6da4ab5..18c088e 100644 --- a/src/H5VLdaosm.c +++ b/src/H5VLdaosm.c @@ -71,6 +71,7 @@ typedef enum { /* Prototypes */ static void *H5VL_daosm_fapl_copy(const void *_old_fa); static herr_t H5VL_daosm_fapl_free(void *_fa); +static herr_t H5VL_daosm_term(hid_t vtpl_id); /* File callbacks */ static void *H5VL_daosm_file_create(const char *name, unsigned flags, @@ -134,7 +135,6 @@ static herr_t H5VL_daosm_attribute_close(void *_attr, hid_t dxpl_id, void **req); /* Helper routines */ -static herr_t H5VL__daosm_term(void); static herr_t H5VL_daosm_write_max_oid(H5VL_daosm_file_t *file); static herr_t H5VL_daosm_file_flush(H5VL_daosm_file_t *file); static herr_t H5VL_daosm_file_close_helper(H5VL_daosm_file_t *file, @@ -172,7 +172,7 @@ static H5VL_class_t H5VL_daosm_g = { H5_VOL_DAOSM, /* Plugin value */ "daos_m", /* name */ NULL, /* initialize */ - NULL, /* terminate */ + H5VL_daosm_term, /* terminate */ sizeof(H5VL_daosm_fapl_t), /*fapl_size */ H5VL_daosm_fapl_copy, /*fapl_copy */ H5VL_daosm_fapl_free, /*fapl_free */ @@ -489,7 +489,7 @@ H5VLdaosm_term(void) FUNC_ENTER_API(FAIL) /* Terminate the plugin */ - if(H5VL__daosm_term() < 0) + if(H5VL_daosm_term(-1) < 0) HGOTO_ERROR(H5E_VOL, H5E_CLOSEERROR, FAIL, "can't close DAOS-< VOL plugin") done: @@ -498,7 +498,7 @@ done: /*--------------------------------------------------------------------------- - * Function: H5VL__daosm_term + * Function: H5VL_daosm_term * * Purpose: Shut down the DAOS-M VOL * @@ -507,12 +507,12 @@ done: *--------------------------------------------------------------------------- */ static herr_t -H5VL__daosm_term(void) +H5VL_daosm_term(hid_t H5_ATTR_UNUSED vtpl_id) { int ret; herr_t ret_value = SUCCEED; - FUNC_ENTER_STATIC + FUNC_ENTER_NOAPI_NOINIT if(H5VL_DAOSM_g >= 0) { /* Disconnect from pool */ @@ -525,15 +525,14 @@ H5VL__daosm_term(void) /* Terminate DAOS */ (void)daos_fini(); - /* Unregister VOL plugin */ - if(H5Idec_ref(H5VL_DAOSM_g) < 0) - HGOTO_ERROR(H5E_VOL, H5E_CLOSEERROR, FAIL, "can't unregister DAOS-M VOL plugin") + /* "Forget" plugin id. This should normally be called by the library + * when it is closing the id, so no need to close it here. */ H5VL_DAOSM_g = -1; } /* end if */ done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5VL__daosm_term() */ +} /* end H5VL_daosm_term() */ /*------------------------------------------------------------------------- -- cgit v0.12