-/* Copyright (c) 2013-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2013-2022. The SimGrid Team. All rights reserved. */
/* 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. */
actor.get_host()->get_cname(), issuer->get_cname());
issuer->kill(&actor);
}
- for (auto& activity : EngineImpl::get_instance()->get_maestro()->activities_) {
+ for (const auto& activity : EngineImpl::get_instance()->get_maestro()->activities_) {
auto* exec = dynamic_cast<activity::ExecImpl*>(activity.get());
- if (exec != nullptr && exec->get_host() == &piface_) {
- exec->cancel();
- exec->state_ = activity::State::FAILED;
+ if (exec != nullptr) {
+ auto hosts = exec->get_hosts();
+ if (std::find(hosts.begin(), hosts.end(), &piface_) != hosts.end()) {
+ exec->cancel();
+ exec->set_state(activity::State::FAILED);
+ }
}
}
// When a host is turned off, we want to keep only the actors that should restart for when it will boot again.