Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
please sonar on recent SMPI++ code
[simgrid.git] / src / smpi / smpi_global.cpp
index f9cc327..1e6fd35 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2007-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -74,7 +73,6 @@ int process_count = 0;
 int smpi_universe_size = 0;
 int* index_to_process_data = nullptr;
 extern double smpi_total_benched_time;
-extern xbt_dict_t smpi_type_keyvals;
 extern xbt_dict_t smpi_comm_keyvals;
 xbt_os_timer_t global_timer;
 MPI_Comm MPI_COMM_WORLD = MPI_COMM_UNINITIALIZED;
@@ -615,17 +613,17 @@ void smpi_global_destroy()
 
   smpi_bench_destroy();
   if (MPI_COMM_WORLD != MPI_COMM_UNINITIALIZED){
-      while (MPI_COMM_WORLD->group()->unuse() > 0);
+      delete MPI_COMM_WORLD->group();
       MSG_barrier_destroy(process_data[0]->finalization_barrier);
   }else{
       smpi_deployment_cleanup_instances();
   }
   for (int i = 0; i < count; i++) {
     if(process_data[i]->comm_self!=MPI_COMM_NULL){
-      process_data[i]->comm_self->destroy();
+      Comm::destroy(process_data[i]->comm_self);
     }
     if(process_data[i]->comm_intra!=MPI_COMM_NULL){
-      process_data[i]->comm_intra->destroy();
+      Comm::destroy(process_data[i]->comm_intra);
     }
     xbt_os_timer_free(process_data[i]->timer);
     xbt_mutex_destroy(process_data[i]->mailboxes_mutex);
@@ -649,8 +647,6 @@ void smpi_global_destroy()
   }
 
   xbt_free(index_to_process_data);
-  if(smpi_type_keyvals!=nullptr) 
-    xbt_dict_free(&smpi_type_keyvals);
   if(smpi_comm_keyvals!=nullptr) 
     xbt_dict_free(&smpi_comm_keyvals);
   if(smpi_privatize_global_variables)