this->iwannadie = false; // don't let the simcall's yield() do a Context::stop(), because that's me
simgrid::simix::simcall([this] {
simgrid::s4u::Actor::on_destruction(actor_->iface());
+
+ /* Unregister from the kill timer if any */
+ if (actor_->kill_timer != nullptr) {
+ SIMIX_timer_remove(actor_->kill_timer);
+ actor_->kill_timer = nullptr;
+ }
+
SIMIX_process_cleanup(actor_);
});
this->iwannadie = true;
XBT_DEBUG("Cleanup process %s (%p), waiting synchro %p", process->get_cname(), process,
process->waiting_synchro.get());
- /* Unregister from the kill timer if any */
- if (process->kill_timer != nullptr) {
- SIMIX_timer_remove(process->kill_timer);
- process->kill_timer = nullptr;
- }
-
simix_global->mutex.lock();
simix_global->process_list.erase(process->pid_);