X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/026c5a576fbea1da8f6290f4435d5424ce0efe8b..7013392b1a0a3aed2219fa352e81826f8657fbe2:/src/s4u/s4u_Host.cpp diff --git a/src/s4u/s4u_Host.cpp b/src/s4u/s4u_Host.cpp index 572ee4ada9..68698e80c1 100644 --- a/src/s4u/s4u_Host.cpp +++ b/src/s4u/s4u_Host.cpp @@ -7,6 +7,7 @@ #include "simgrid/s4u/Actor.hpp" #include "simgrid/s4u/Engine.hpp" #include "simgrid/s4u/Exec.hpp" +#include "src/simix/smx_private.hpp" #include "src/surf/HostImpl.hpp" #include @@ -76,10 +77,10 @@ Host* Host::by_name_or_null(const std::string& name) Host* Host::current() { - smx_actor_t smx_proc = SIMIX_process_self(); - if (smx_proc == nullptr) + smx_actor_t self = SIMIX_process_self(); + if (self == nullptr) xbt_die("Cannot call Host::current() from the maestro context"); - return smx_proc->host_; + return self->get_host(); } void Host::turn_on() @@ -636,7 +637,17 @@ void sg_host_get_actor_list(sg_host_t host, xbt_dynar_t whereto) sg_host_t sg_host_self() { smx_actor_t process = SIMIX_process_self(); - return (process == nullptr) ? nullptr : process->host_; + return (process == nullptr) ? nullptr : process->get_host(); +} + +/* needs to be public and without simcall for exceptions and logging events */ +const char* sg_host_self_get_name() +{ + sg_host_t host = sg_host_self(); + if (host == nullptr || SIMIX_process_self() == simix_global->maestro_process) + return ""; + + return host->get_cname(); } double sg_host_load(sg_host_t host)