X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/07ad10208f1c81a149c0737abd70b5a586f06eb0..a73d204e173f35c0abb92b26e061929066b8b283:/src/msg/msg_legacy.cpp diff --git a/src/msg/msg_legacy.cpp b/src/msg/msg_legacy.cpp index 38bc2ae1f9..344a8f936b 100644 --- a/src/msg/msg_legacy.cpp +++ b/src/msg/msg_legacy.cpp @@ -3,6 +3,7 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#include "simgrid/Exception.hpp" #include "src/msg/msg_private.hpp" #define MSG_CALL(type, oldname, args) @@ -123,10 +124,65 @@ void MSG_process_yield() { sg_actor_yield(); } -void MSG_process_sleep(double duration) + +msg_error_t MSG_process_sleep(double duration) +{ + try { + sg_actor_sleep_for(duration); + return MSG_OK; + } catch (const simgrid::HostFailureException&) { + return MSG_HOST_FAILURE; + } +} + +msg_process_t MSG_process_attach(const char* name, void* data, msg_host_t host, xbt_dict_t properties) +{ + return sg_actor_attach(name, data, host, properties); +} + +void MSG_process_detach() { - sg_actor_sleep_for(duration); + sg_actor_detach(); } +aid_t MSG_process_self_PID() +{ + return sg_actor_self_get_pid(); +} + +/** @brief Return the PPID of the current process. + * + * This function returns the PID of the parent of the currently running #msg_process_t. + */ +aid_t MSG_process_self_PPID() +{ + return sg_actor_self_get_ppid(); +} + +/** @brief Return the name of the current process. */ +const char* MSG_process_self_name() +{ + return sg_actor_self_get_name(); +} +/** @brief Return the current process. + * + * This function returns the currently running #msg_process_t. + */ +msg_process_t MSG_process_self() +{ + return sg_actor_self(); +} + +/** @brief Take an extra reference on that process to prevent it to be garbage-collected */ +void MSG_process_ref(msg_process_t process) +{ + sg_actor_ref(process); +} +/** @brief Release a reference on that process so that it can get be garbage-collected */ +void MSG_process_unref(msg_process_t process) +{ + sg_actor_unref(process); +} + /* ************************** NetZones *************************** */ sg_netzone_t MSG_zone_get_root() { @@ -226,11 +282,11 @@ const char* MSG_host_get_name(sg_host_t host) } void* MSG_host_get_data(sg_host_t host) { - return sg_host_user(host); + return sg_host_data(host); } void MSG_host_set_data(sg_host_t host, void* data) { - return sg_host_user_set(host, data); + return sg_host_data_set(host, data); } xbt_dict_t MSG_host_get_mounted_storage_list(sg_host_t host) { @@ -276,10 +332,6 @@ int MSG_host_is_on(sg_host_t h) { return sg_host_is_on(h); } -int MSG_host_is_off(sg_host_t h) -{ - return sg_host_is_off(h); -} xbt_dict_t MSG_host_get_properties(sg_host_t host) { return sg_host_get_properties(host);