if (self_context == nullptr)
return simgrid::s4u::ActorPtr();
- return simgrid::s4u::ActorPtr(&self_context->process()->getIface());
+ return self_context->process()->iface();
}
ActorPtr Actor::createActor(const char* name, s4u::Host* host, std::function<void()> code)
{
- // TODO, when autorestart is used, the std::function is copied so the new
- // instance will get a fresh (reinitialized) state. Is this what we want?
- smx_actor_t process = simcall_process_create(name, std::move(code), nullptr, host, nullptr, 0);
- return ActorPtr(&process->getIface());
+ smx_actor_t actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ return actor->iface();
}
ActorPtr Actor::createActor(const char* name, s4u::Host* host, const char* function, std::vector<std::string> args)
{
simgrid::simix::ActorCodeFactory& factory = SIMIX_get_actor_code_factory(function);
simgrid::simix::ActorCode code = factory(std::move(args));
- smx_actor_t process = simcall_process_create(name, std::move(code), nullptr, host, nullptr, 0);
- return ActorPtr(&process->getIface());
+ smx_actor_t actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ return actor->iface();
}
// ***** Actor methods *****
{
smx_actor_t process = SIMIX_process_from_PID(pid);
if (process != nullptr)
- return ActorPtr(&process->getIface());
+ return process->iface();
else
- return nullptr;
+ return ActorPtr();
}
void Actor::killAll() {
return SIMIX_process_self()->ppid;
}
+std::string name()
+{
+ return SIMIX_process_self()->name;
+}
}
}
}