SimGrid (3.18) NOT RELEASED YET (target: December 24 2017)
- S4U
+ S4U New features
+ - s4u::onDeadlock() signal, run before stopping the simulation.
+
+ S4U API changes
- Link::name() is deprecated and will be removed in v3.21, use
Link::getCname() instead.
- Mailbox::getName() changed to return a std::string, use
Fixed bugs:
- #248: Kill of finished processes leads to segfault
- #240: xbt_cond_wait_timeout should gracefully return for C apps
+ - #239: please implement signal s4u::onDeadlock()
- #230: segfaults when exit() without run()
- #225: s4u::Actor::kill() doesn not really kill victims in a join()
- #223: MSG_task_get_flops_amount() not working with parallel tasks
/** Callback fired when the time jumps into the future */
extern XBT_PRIVATE xbt::signal<void(double)> onTimeAdvance;
+
+/** Callback fired when the time cannot jump because of inter-actors deadlock */
+extern XBT_PRIVATE xbt::signal<void(void)> onDeadlock;
}
} // namespace simgrid::s4u
xbt::signal<void()> onPlatformCreated;
xbt::signal<void()> onSimulationEnd;
xbt::signal<void(double)> onTimeAdvance;
+xbt::signal<void(void)> onDeadlock;
Engine *Engine::instance_ = nullptr; /* That singleton is awful, but I don't see no other solution right now. */
XBT_CRITICAL("Oops ! Deadlock or code not perfectly clean.");
SIMIX_display_process_status();
+ simgrid::s4u::onDeadlock();
xbt_abort();
}
simgrid::s4u::onSimulationEnd();