Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
handle Mess in display actor status
[simgrid.git] / src / kernel / EngineImpl.cpp
index f4a3d74..8b7b60a 100644 (file)
@@ -155,6 +155,9 @@ EngineImpl::~EngineImpl()
   for (auto const& [_, mailbox] : mailboxes_)
     delete mailbox;
 
+  for (auto const& [_, queue] : mqueues_)
+    delete queue;
+
   /* Kill all actors (but maestro) */
   maestro_->kill_all();
   run_all_actors();
@@ -453,6 +456,9 @@ void EngineImpl::display_all_actor_status() const
       if (boost::dynamic_pointer_cast<kernel::activity::CommImpl>(actor->waiting_synchro_) != nullptr)
         synchro_description = "communication";
 
+      if (boost::dynamic_pointer_cast<kernel::activity::MessImpl>(actor->waiting_synchro_) != nullptr)
+        synchro_description = "message";
+
       if (boost::dynamic_pointer_cast<kernel::activity::SleepImpl>(actor->waiting_synchro_) != nullptr)
         synchro_description = "sleeping";
 
@@ -490,7 +496,7 @@ double EngineImpl::solve(double max_date) const
   }
 
   XBT_DEBUG("Looking for next event in all models");
-  for (auto model : models_) {
+  for (auto* model : models_) {
     if (not model->next_occurring_event_is_idempotent())
       continue;
 
@@ -508,7 +514,7 @@ double EngineImpl::solve(double max_date) const
     double next_event_date = profile::future_evt_set.next_date();
     XBT_DEBUG("Next TRACE event: %f", next_event_date);
 
-    for (auto model : models_) {
+    for (auto* model : models_) {
       /* Skip all idempotent models, they were already treated above
        * NS3 is the one to handled here */
       if (model->next_occurring_event_is_idempotent())