Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Variable is declared in xbt/asserts.h.
[simgrid.git] / src / kernel / EngineImpl.cpp
index 58dccdb..4a41dd0 100644 (file)
@@ -106,7 +106,7 @@ static void segvhandler(int signum, siginfo_t* siginfo, void* /*context*/)
   } else if (siginfo->si_signo == SIGSEGV) {
     fprintf(stderr, "Segmentation fault.\n");
 #if HAVE_SMPI
-    if (smpi_enabled() && smpi_cfg_privatization() == SmpiPrivStrategies::NONE) {
+    if (SMPI_is_inited() && smpi_cfg_privatization() == SmpiPrivStrategies::NONE) {
 #if HAVE_PRIVATIZATION
       fprintf(stderr, "Try to enable SMPI variable privatization with --cfg=smpi/privatization:yes.\n");
 #else
@@ -178,10 +178,6 @@ EngineImpl::~EngineImpl()
   delete maestro_;
   delete context_factory_;
 
-  /* Free the remaining data structures */
-#if SIMGRID_HAVE_MC
-  xbt_dynar_free(&actors_vector_);
-#endif
   /* clear models before freeing handle, network models can use external callback defined in the handle */
   models_prio_.clear();
 }
@@ -195,7 +191,7 @@ void EngineImpl::initialize(int* argc, char** argv)
   // The communication initialization is done ASAP, as we need to get some init parameters from the MC for different
   // layers. But instance_ needs to be created, as we send the address of some of its fields to the MC that wants to
   // read them directly.
-  simgrid::mc::AppSide::initialize(actors_vector_);
+  simgrid::mc::AppSide::initialize();
 #endif
 
   if (xbt_initialized == 0) {
@@ -373,7 +369,7 @@ void EngineImpl::add_model(std::shared_ptr<resource::Model> model, const std::ve
   xbt_assert(models_prio_.find(model_name) == models_prio_.end(),
              "Model %s already exists, use model.set_name() to change its name", model_name.c_str());
 
-  for (const auto dep : dependencies) {
+  for (const auto* dep : dependencies) {
     xbt_assert(models_prio_.find(dep->get_name()) != models_prio_.end(),
                "Model %s doesn't exists. Impossible to use it as dependency.", dep->get_name().c_str());
   }
@@ -492,13 +488,17 @@ void EngineImpl::display_all_actor_status() const
       if (boost::dynamic_pointer_cast<kernel::activity::IoImpl>(actor->waiting_synchro_) != nullptr)
         synchro_description = "I/O";
 
-      XBT_INFO("Actor %ld (%s@%s): waiting for %s activity %#zx (%s) in state %s to finish", actor->get_pid(),
+      XBT_INFO("Actor %ld (%s@%s): waiting for %s activity %#zx (%s) in state %s to finish %s", actor->get_pid(),
                actor->get_cname(), actor->get_host()->get_cname(), synchro_description,
                (xbt_log_no_loc ? (size_t)0xDEADBEEF : (size_t)actor->waiting_synchro_.get()),
-               actor->waiting_synchro_->get_cname(), actor->waiting_synchro_->get_state_str());
+               actor->waiting_synchro_->get_cname(), actor->waiting_synchro_->get_state_str(),
+               (actor->simcall_.observer_ != nullptr && not xbt_log_no_loc
+                    ? actor->simcall_.observer_->to_string().c_str()
+                    : ""));
     } else {
       XBT_INFO("Actor %ld (%s@%s) simcall %s", actor->get_pid(), actor->get_cname(), actor->get_host()->get_cname(),
-               actor->simcall_.get_cname());
+               (actor->simcall_.observer_ != nullptr ? actor->simcall_.observer_->to_string().c_str()
+                                                     : actor->simcall_.get_cname()));
     }
   }
 }