- simgrid::s4u::Actor *actor = (simgrid::s4u::Actor*) SIMIX_process_self_get_data();
- int res = actor->main(argc,argv);
- return res;
+ smx_context_t self_context = SIMIX_context_self();
+ if (self_context == nullptr)
+ return simgrid::s4u::ActorPtr();
+
+ return self_context->process()->iface();
+}
+
+ActorPtr Actor::createActor(const char* name, s4u::Host* host, std::function<void()> code)
+{
+ smx_actor_t actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ return actor->iface();