summaryrefslogtreecommitdiffstats
path: root/testpar/t_cache.c
diff options
context:
space:
mode:
authorWei-keng Liao <wkliao@users.noreply.github.com>2022-04-15 15:20:23 (GMT)
committerGitHub <noreply@github.com>2022-04-15 15:20:23 (GMT)
commitf2a8ac16d7d595dfb83524bbeba2f7f0b8873332 (patch)
tree6341a603b5589f8b9b70eede56e58380a18b3dfd /testpar/t_cache.c
parent6a4d37f189aa21962cc901592c72c85df4fdc3a2 (diff)
downloadhdf5-f2a8ac16d7d595dfb83524bbeba2f7f0b8873332.zip
hdf5-f2a8ac16d7d595dfb83524bbeba2f7f0b8873332.tar.gz
hdf5-f2a8ac16d7d595dfb83524bbeba2f7f0b8873332.tar.bz2
free MPI_Group/MPI_Comm/MPI_Datatype objects (#1638)
* free MPI_Group/MPI_Comm/MPI_Datatype objects * fix clang-format style
Diffstat (limited to 'testpar/t_cache.c')
-rw-r--r--testpar/t_cache.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/testpar/t_cache.c b/testpar/t_cache.c
index 8559afb..d889b3b 100644
--- a/testpar/t_cache.c
+++ b/testpar/t_cache.c
@@ -325,7 +325,7 @@ struct mssg_t {
unsigned magic;
};
-MPI_Datatype mpi_mssg_t; /* for MPI derived type created from mssg */
+MPI_Datatype mpi_mssg_t = MPI_DATATYPE_NULL; /* for MPI derived type created from mssg */
/*****************************************************************************/
/************************** function declarations ****************************/
@@ -565,8 +565,8 @@ set_up_file_communicator(void)
int mpi_result;
int num_excluded_ranks;
int excluded_ranks[1];
- MPI_Group file_group;
- MPI_Group world_group;
+ MPI_Group file_group = MPI_GROUP_NULL;
+ MPI_Group world_group = MPI_GROUP_NULL;
if (success) {
@@ -674,6 +674,12 @@ set_up_file_communicator(void)
}
}
+ if (file_group != MPI_GROUP_NULL)
+ MPI_Group_free(&file_group);
+
+ if (world_group != MPI_GROUP_NULL)
+ MPI_Group_free(&world_group);
+
return (success);
} /* set_up_file_communicator() */
@@ -1195,6 +1201,9 @@ takedown_derived_types(void)
hbool_t success = TRUE;
int result;
+ if (mpi_mssg_t == MPI_DATATYPE_NULL)
+ return (success);
+
result = MPI_Type_free(&mpi_mssg_t);
if (result != MPI_SUCCESS) {
@@ -7047,6 +7056,10 @@ finish:
/* make sure all processes are finished before final report, cleanup
* and exit.
*/
+
+ if (file_mpi_comm != MPI_COMM_NULL)
+ MPI_Comm_free(&file_mpi_comm);
+
MPI_Barrier(MPI_COMM_WORLD);
if (MAINPROCESS) { /* only process 0 reports */
HDprintf("===================================\n");