summaryrefslogtreecommitdiffstats
path: root/testpar/t_pflush1.c
diff options
context:
space:
mode:
Diffstat (limited to 'testpar/t_pflush1.c')
-rw-r--r--testpar/t_pflush1.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/testpar/t_pflush1.c b/testpar/t_pflush1.c
index 1bcfeb8..ebe5c38 100644
--- a/testpar/t_pflush1.c
+++ b/testpar/t_pflush1.c
@@ -164,9 +164,12 @@ main(int argc, char* argv[])
} /* end else */
/*
- * Some systems like AIX do not like files not closed when MPI_Finalize
- * is called. So, we need to get the MPI file handles, close them by hand.
- * Then the _exit is still needed to stop at_exit from happening in some systems.
+ * Some systems like Linux with mpich, if you just _exit without MPI_Finalize
+ * called, it would terminate but left the launching process waiting forever.
+ * OTHO, some systems like AIX do not like files not closed when MPI_Finalize
+ * is called. So, we need to get the MPI file handles, close them by hand,
+ * then MPI_Finalize. Then the _exit is still needed to stop at_exit from
+ * happening in some systems.
* Note that MPIO VFD returns the address of the file-handle in the VFD struct
* because MPI_File_close wants to modify the file-handle variable.
*/
@@ -192,11 +195,13 @@ main(int argc, char* argv[])
fflush(stdout);
fflush(stderr);
+ MPI_Finalize();
HD_exit(0);
error:
fflush(stdout);
fflush(stderr);
+ MPI_Finalize();
HD_exit(1);
}