ActorImpl::~ActorImpl()
{
- if (EngineImpl::has_instance() && not EngineImpl::get_instance()->is_maestro(this))
+ if (EngineImpl::has_instance() && not EngineImpl::get_instance()->is_maestro(this)) {
s4u::Actor::on_destruction(*get_ciface());
+ get_ciface()->on_this_destruction(*get_ciface());
+ }
}
/* Become an actor in the simulation
undaemonize();
s4u::Actor::on_termination(*get_ciface());
+ get_ciface()->on_this_termination(*get_ciface());
while (not mailboxes_.empty())
mailboxes_.back()->set_receiver(nullptr);
throw_exception(std::make_exception_ptr(
HostFailureException(XBT_THROW_POINT, "Host " + host_->get_name() + " failed, you cannot sleep there.")));
- auto sleep_activity = new activity::SleepImpl();
+ auto* sleep_activity = new activity::SleepImpl();
sleep_activity->set_name("sleep").set_host(host_).set_duration(duration).start();
return activity::SleepImplPtr(sleep_activity);
}
/** (in kernel mode) unpack the simcall and activate the handler */
void ActorImpl::simcall_handle(int times_considered)
{
- XBT_DEBUG("Handling simcall %p: %s(%ld) %s", &simcall_, simcall_.issuer_->get_cname(), simcall_.issuer_->get_pid(),
- (simcall_.observer_ != nullptr ? simcall_.observer_->to_string().c_str() : simcall_.get_cname()));
+ XBT_DEBUG("Handling simcall %p: %s(%ld) %s (times_considered:%d)", &simcall_, simcall_.issuer_->get_cname(),
+ simcall_.issuer_->get_pid(),
+ (simcall_.observer_ != nullptr ? simcall_.observer_->to_string().c_str() : simcall_.get_cname()),
+ times_considered);
if (simcall_.observer_ != nullptr)
simcall_.observer_->prepare(times_considered);
if (wannadie())