X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/de5cf41bde606e7e57c27173d88bafdc6925e69e..cce2f17588840ed67dae9c17507fe5957f87b85a:/src/smpi/bindings/smpi_f77_comm.cpp diff --git a/src/smpi/bindings/smpi_f77_comm.cpp b/src/smpi/bindings/smpi_f77_comm.cpp index 750ea02a62..219ea38f71 100644 --- a/src/smpi/bindings/smpi_f77_comm.cpp +++ b/src/smpi/bindings/smpi_f77_comm.cpp @@ -37,12 +37,11 @@ void mpi_comm_create_(int* comm, int* group, int* newcomm, int* ierr) { void mpi_comm_free_(int* comm, int* ierr) { MPI_Comm tmp = simgrid::smpi::Comm::f2c(*comm); - - *ierr = MPI_Comm_free(&tmp); - - if(*ierr == MPI_SUCCESS) { + if(tmp != MPI_COMM_WORLD && tmp != MPI_COMM_NULL) { + simgrid::smpi::Comm::destroy(tmp); simgrid::smpi::Comm::free_f(*comm); } + *ierr = MPI_SUCCESS; } void mpi_comm_split_(int* comm, int* color, int* key, int* comm_out, int* ierr) {