X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/acdaba1e5294a4b167a54acb3d7cc4dca60e911c..6f1f1b0cb7e3d05cdd450d76d402eb76ce3e3cd6:/src/s4u/s4u_Actor.cpp?ds=sidebyside diff --git a/src/s4u/s4u_Actor.cpp b/src/s4u/s4u_Actor.cpp index 5ec46126a8..8779aef391 100644 --- a/src/s4u/s4u_Actor.cpp +++ b/src/s4u/s4u_Actor.cpp @@ -43,6 +43,7 @@ Actor* Actor::self() return self_context->get_actor()->ciface(); } + ActorPtr Actor::init(const std::string& name, s4u::Host* host) { kernel::actor::ActorImpl* self = SIMIX_process_self(); @@ -440,6 +441,19 @@ void migrate(Host* new_host) /* **************************** 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(argv)); + actor->start(std::move(function)); +} + /** @ingroup m_actor_management * @brief Returns the process ID of @a actor. *