You should not access directly to the fields of the pointed structure, but always use the provided API to interact
with actors.
*/
+XBT_PUBLIC sg_actor_t sg_actor_init(const char* name, sg_host_t host);
+XBT_PUBLIC void sg_actor_start(sg_actor_t actor, xbt_main_func_t code, int argc, char** argv);
XBT_PUBLIC aid_t sg_actor_get_PID(sg_actor_t actor);
XBT_PUBLIC aid_t sg_actor_get_PPID(sg_actor_t actor);
XBT_PUBLIC sg_actor_t sg_actor_by_PID(aid_t pid);
return self_context->get_actor()->ciface();
}
+
ActorPtr Actor::init(const std::string& name, s4u::Host* host)
{
kernel::actor::ActorImpl* self = SIMIX_process_self();
/* **************************** Public C interface *************************** */
+sg_actor_t sg_actor_init(const char* name, sg_host_t host)
+{
+ return simgrid::s4u::Actor::init(name, host).get();
+}
+
+void sg_actor_start(sg_actor_t actor, xbt_main_func_t code, int argc, char** argv)
+{
+ simgrid::simix::ActorCode function;
+ if (code)
+ function = simgrid::xbt::wrap_main(code, argc, static_cast<const char* const*>(argv));
+ actor->start(std::move(function));
+}
+
/** @ingroup m_actor_management
* @brief Returns the process ID of @a actor.
*