This is to prevent that the SMPI extension gets destroyed too early.
The problem is also that this extension is not really an extension but
manually handled, but I'll not fix that tonight.
-ActorImpl::~ActorImpl() = default;
+ActorImpl::~ActorImpl() {
+ context_->iwannadie = false; // don't let the simcall's yield() do a Context::stop(), to avoid infinite loops
+ simgrid::simix::simcall([this] { simgrid::s4u::Actor::on_destruction(*ciface()); });
+ context_->iwannadie = true;
+}
/* Become an actor in the simulation
*
/* Become an actor in the simulation
*
}
simix_global->mutex.unlock();
}
simix_global->mutex.unlock();
-
- context_->iwannadie = false; // don't let the simcall's yield() do a Context::stop(), to avoid infinite loops
- simgrid::simix::simcall([this] { simgrid::s4u::Actor::on_destruction(*ciface()); });
- context_->iwannadie = true;