Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
remove another pimpl in smpi initialization
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 16 Sep 2019 22:14:16 +0000 (00:14 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 16 Sep 2019 22:14:16 +0000 (00:14 +0200)
src/smpi/internals/smpi_deployment.cpp
src/smpi/internals/smpi_global.cpp

index 54f42e1..5e74b69 100644 (file)
@@ -61,13 +61,6 @@ void SMPI_app_instance_register(const char *name, xbt_main_func_t code, int num_
   if (code != nullptr) // When started with smpirun, we will not execute a function
     simgrid::s4u::Engine::get_instance()->register_function(name, code);
 
-  static bool already_called = false;
-  if (not already_called) {
-    already_called = true;
-    for (auto const& host : simgrid::s4u::Engine::get_instance()->get_all_hosts())
-      host->extension_set(new simgrid::smpi::Host(host));
-  }
-
   Instance instance(std::string(name), num_processes, MPI_COMM_NULL);
 
   smpi_instances.insert(std::pair<std::string, Instance>(name, instance));
index ed575dd..c1d5476 100644 (file)
@@ -681,6 +681,8 @@ void SMPI_init(){
   });
   simgrid::s4u::Host::on_creation.connect(
       [](simgrid::s4u::Host& host) { host.extension_set(new simgrid::smpi::Host(&host)); });
+  for (auto const& host : simgrid::s4u::Engine::get_instance()->get_all_hosts())
+    host->extension_set(new simgrid::smpi::Host(host));
 
   smpi_init_options();
   if (not MC_is_active()) {