Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simplify SIMIX_host_add_auto_restart_process
[simgrid.git] / src / simix / smx_global.cpp
index 667e50a..f16fa89 100644 (file)
@@ -158,14 +158,12 @@ static void kill_process(smx_actor_t process)
 namespace simgrid {
 namespace simix {
 
-simgrid::xbt::signal<void()> onDeadlock;
-
 simgrid::config::Flag<double> breakpoint{"simix/breakpoint",
                                          "When non-negative, raise a SIGTRAP after given (simulated) time", -1.0};
 }
 }
 
-static std::function<void()> maestro_code;
+static simgrid::simix::ActorCode maestro_code;
 void SIMIX_set_maestro(void (*code)(void*), void* data)
 {
 #ifdef _WIN32
@@ -216,7 +214,7 @@ void SIMIX_global_init(int *argc, char **argv)
     });
 
     simgrid::s4u::Storage::on_creation.connect([](simgrid::s4u::Storage& storage) {
-      sg_storage_t s = simgrid::s4u::Storage::byName(storage.get_cname());
+      sg_storage_t s = simgrid::s4u::Storage::by_name(storage.get_cname());
       xbt_assert(s != nullptr, "Storage not found for name %s", storage.get_cname());
     });
   }
@@ -286,8 +284,8 @@ void SIMIX_clean()
 #endif
 
   /* Let's free maestro now */
-  delete simix_global->maestro_process->context;
-  simix_global->maestro_process->context = nullptr;
+  delete simix_global->maestro_process->context_;
+  simix_global->maestro_process->context_ = nullptr;
   delete simix_global->maestro_process;
   simix_global->maestro_process = nullptr;
 
@@ -399,7 +397,7 @@ void SIMIX_run()
   do {
     XBT_DEBUG("New Schedule Round; size(queue)=%zu", simix_global->process_to_run.size());
 
-    if (simgrid::simix::breakpoint >= 0.0 && time >= simgrid::simix::breakpoint) {
+    if (simgrid::simix::breakpoint >= 0.0 && surf_get_clock() >= simgrid::simix::breakpoint) {
       XBT_DEBUG("Breakpoint reached (%g)", simgrid::simix::breakpoint.get());
       simgrid::simix::breakpoint = -1.0;
 #ifdef SIGTRAP
@@ -531,9 +529,6 @@ void SIMIX_run()
     XBT_DEBUG("### time %f, #processes %zu, #to_run %zu", time, simix_global->process_list.size(),
               simix_global->process_to_run.size());
 
-    if (simix_global->process_to_run.empty() && not simix_global->process_list.empty())
-      simgrid::simix::onDeadlock();
-
   } while (time > -1.0 || not simix_global->process_to_run.empty());
 
   if (not simix_global->process_list.empty()) {
@@ -562,7 +557,7 @@ void SIMIX_run()
  */
 smx_timer_t SIMIX_timer_set(double date, void (*callback)(void*), void *arg)
 {
-  smx_timer_t timer = new s_smx_timer_t(date, simgrid::xbt::makeTask([callback, arg]() { callback(arg); }));
+  smx_timer_t timer = new s_smx_timer_t(date, simgrid::xbt::make_task([callback, arg]() { callback(arg); }));
   timer->handle_    = simix_timers.emplace(std::make_pair(date, timer));
   return timer;
 }
@@ -653,12 +648,12 @@ void SIMIX_display_process_status()
       if (boost::dynamic_pointer_cast<simgrid::kernel::activity::IoImpl>(process->waiting_synchro) != nullptr)
         synchro_description = "I/O";
 
-      XBT_INFO("Process %ld (%s@%s): waiting for %s synchro %p (%s) in state %d to finish", process->pid,
-               process->get_cname(), process->host->get_cname(), synchro_description, process->waiting_synchro.get(),
+      XBT_INFO("Process %ld (%s@%s): waiting for %s synchro %p (%s) in state %d to finish", process->pid_,
+               process->get_cname(), process->host_->get_cname(), synchro_description, process->waiting_synchro.get(),
                process->waiting_synchro->name_.c_str(), (int)process->waiting_synchro->state_);
     }
     else {
-      XBT_INFO("Process %ld (%s@%s)", process->pid, process->get_cname(), process->host->get_cname());
+      XBT_INFO("Process %ld (%s@%s)", process->pid_, process->get_cname(), process->host_->get_cname());
     }
   }
 }