Host* Host::current()
{
- kernel::actor::ActorImpl* self = SIMIX_process_self();
+ kernel::actor::ActorImpl* self = kernel::actor::ActorImpl::self();
if (self == nullptr)
xbt_die("Cannot call Host::current() from the maestro context");
return self->get_host();
void Host::turn_off()
{
if (is_on()) {
- kernel::actor::ActorImpl* self = SIMIX_process_self();
+ kernel::actor::ActorImpl* self = kernel::actor::ActorImpl::self();
kernel::actor::simcall([this, self] {
for (VirtualMachine* const& vm : vm::VirtualMachineImpl::allVms_)
if (vm->get_pm() == this) {
xbt_dict_t res = xbt_dict_new_homogeneous(nullptr);
for (auto const& elm : host->get_mounted_storages()) {
const char* mount_name = elm.first.c_str();
- sg_storage_t storage = elm.second;
+ const simgrid::s4u::Storage* storage = elm.second;
xbt_dict_set(res, mount_name, (void*)storage->get_cname());
}
*/
void sg_host_get_actor_list(sg_host_t host, xbt_dynar_t whereto)
{
- auto actors = host->get_all_actors();
- for (auto& actor : actors)
+ auto const actors = host->get_all_actors();
+ for (auto const& actor : actors)
xbt_dynar_push(whereto, &actor);
}
sg_host_t sg_host_self()
{
- return SIMIX_is_maestro() ? nullptr : SIMIX_process_self()->get_host();
+ return SIMIX_is_maestro() ? nullptr : simgrid::kernel::actor::ActorImpl::self()->get_host();
}
/* needs to be public and without simcall for exceptions and logging events */
const char* sg_host_self_get_name()
{
- return SIMIX_is_maestro() ? "" : SIMIX_process_self()->get_host()->get_cname();
+ const char* res = "";
+ if (not SIMIX_is_maestro()) {
+ simgrid::s4u::Host* host = simgrid::kernel::actor::ActorImpl::self()->get_host();
+ if (host != nullptr)
+ res = host->get_cname();
+ }
+ return res;
}
double sg_host_load(sg_host_t host)