From 10ac887f7a620bd1b7b2ba445bc9ad53f9978a4c Mon Sep 17 00:00:00 2001 From: Sebastien Blaise <sebastien.blaise@uclouvain.be> Date: Thu, 30 Jul 2015 12:33:54 +0000 Subject: [PATCH] Fixed bug with MPI_FINALIZE when it was called by PETSc earlier --- Common/GmshMessage.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp index 75f561b754..c35c1e84b9 100644 --- a/Common/GmshMessage.cpp +++ b/Common/GmshMessage.cpp @@ -185,7 +185,10 @@ void Msg::Exit(int level) #if defined(HAVE_MPI) // force general abort (wven if the fatal error occurred on 1 cpu only) MPI_Abort(MPI_COMM_WORLD, level); - MPI_Finalize(); + int finalized; + MPI_Finalized(&finalized); + if (!finalized) + MPI_Finalize(); #endif FinalizeOnelab(); exit(level); @@ -215,7 +218,10 @@ void Msg::Exit(int level) PetscFinalize(); #endif #if defined(HAVE_MPI) - MPI_Finalize(); + int finalized; //Some PETSc versions call MPI_FINALIZE + MPI_Finalized(&finalized); + if (!finalized) + MPI_Finalize(); #endif FinalizeOnelab(); exit(_atLeastOneErrorInRun); -- GitLab