X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/149c63f36e15b8500b1e826bda5138318ff7ba2b..0148c7da36c56897bde72a1d050d288b87762cfc:/src/msg/msg_legacy.cpp diff --git a/src/msg/msg_legacy.cpp b/src/msg/msg_legacy.cpp index da208dd5a5..f39efe177c 100644 --- a/src/msg/msg_legacy.cpp +++ b/src/msg/msg_legacy.cpp @@ -4,7 +4,9 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "simgrid/Exception.hpp" +#include "simgrid/s4u/Engine.hpp" #include "src/msg/msg_private.hpp" +#include "xbt/functional.hpp" #define MSG_CALL(type, oldname, args) @@ -23,13 +25,17 @@ msg_error_t MSG_main() simgrid_run(); return MSG_OK; } -void MSG_function_register(const char* name, xbt_main_func_t code) +void MSG_function_register(const char* name, int (*code)(int, char**)) { - simgrid_register_function(name, code); + simgrid::kernel::actor::ActorCodeFactory code_factory = [code](std::vector args) { + return simgrid::xbt::wrap_main(code, std::move(args)); + }; + simgrid::s4u::Engine::get_instance()->register_function(name, code_factory); } -void MSG_function_register_default(xbt_main_func_t code) +void MSG_function_register_default(int (*code)(int, char**)) { - simgrid_register_default(code); + simgrid::s4u::Engine::get_instance()->register_default( + [code](std::vector args) { return simgrid::xbt::wrap_main(code, std::move(args)); }); } double MSG_get_clock() { @@ -47,6 +53,11 @@ int MSG_task_listen(const char* alias) } /* ************************** Actors *************************** */ +void MSG_process_on_exit(int_f_int_pvoid_t fun, void* data) +{ + sg_actor_on_exit(fun, data); +} + int MSG_process_get_PID(const_sg_actor_t actor) { return sg_actor_get_PID(actor); @@ -316,7 +327,7 @@ void MSG_host_set_data(sg_host_t host, void* data) { return sg_host_data_set(host, data); } -xbt_dict_t MSG_host_get_mounted_storage_list(sg_host_t host) +xbt_dict_t MSG_host_get_mounted_storage_list(sg_host_t host) // XBT_ATTRIB_DEPRECATED_v330 { return sg_host_get_mounted_storage_list(host); }