X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a08069e16c9e35b17c134b6365940df2f0bcebb3..9e2f30eca15bf2c12a75bf0d59ee82f7c4553193:/src/smpi/smpi_global.cpp?ds=inline diff --git a/src/smpi/smpi_global.cpp b/src/smpi/smpi_global.cpp index c7744434ef..a6be2497c4 100644 --- a/src/smpi/smpi_global.cpp +++ b/src/smpi/smpi_global.cpp @@ -448,19 +448,15 @@ void smpi_global_destroy(void) smpi_bench_destroy(); if (MPI_COMM_WORLD != MPI_COMM_UNINITIALIZED){ while (smpi_group_unuse(smpi_comm_group(MPI_COMM_WORLD)) > 0); - xbt_free(MPI_COMM_WORLD); xbt_barrier_destroy(process_data[0]->finalization_barrier); }else{ smpi_deployment_cleanup_instances(); } - MPI_COMM_WORLD = MPI_COMM_NULL; for (i = 0; i < count; i++) { if(process_data[i]->comm_self!=MPI_COMM_NULL){ - smpi_group_unuse(smpi_comm_group(process_data[i]->comm_self)); smpi_comm_destroy(process_data[i]->comm_self); } if(process_data[i]->comm_intra!=MPI_COMM_NULL){ - smpi_group_unuse(smpi_comm_group(process_data[i]->comm_intra)); smpi_comm_destroy(process_data[i]->comm_intra); } xbt_os_timer_free(process_data[i]->timer); @@ -472,6 +468,10 @@ void smpi_global_destroy(void) xbt_free(process_data); process_data = NULL; + if (MPI_COMM_WORLD != MPI_COMM_UNINITIALIZED) + xbt_free(MPI_COMM_WORLD); + MPI_COMM_WORLD = MPI_COMM_NULL; + xbt_free(index_to_process_data); if(smpi_privatize_global_variables) smpi_destroy_global_memory_segments();