-/* Copyright (c) 2014-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2014-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. */
{
static int id = 0;
auto* ibModel = static_cast<NetworkIBModel*>(host.get_netpoint()->get_englobing_zone()->get_network_model().get());
- ibModel->active_nodes.emplace(host.get_name(), IBNode(id));
+ ibModel->active_nodes.try_emplace(host.get_name(), id);
id++;
}
{
if (action.get_state() != Action::State::FINISHED)
return;
- auto* ibModel = static_cast<NetworkIBModel*>(action.get_model());
- std::pair<IBNode*, IBNode*> pair = ibModel->active_comms[&action];
+ auto* ibModel = static_cast<NetworkIBModel*>(action.get_model());
+ auto [src, dst] = ibModel->active_comms[&action];
XBT_DEBUG("IB callback - action %p finished", &action);
- ibModel->update_IB_factors(&action, pair.first, pair.second, 1);
+ ibModel->update_IB_factors(&action, src, dst, 1);
ibModel->active_comms.erase(&action);
}
for (ActiveComm* comm : root->active_comms_up_) {
// compute inbound penalty
double my_penalty_in = 1.0;
- int nb_comms = comm->destination->nb_active_comms_down_; // total number of incoming comms
- if (nb_comms != 1)
+ if (comm->destination->nb_active_comms_down_ != 1) // total number of incoming comms
my_penalty_in = (comm->destination->active_comms_down_)[root] // number of comm sent to dest by root node
* Be_ * comm->destination->active_comms_down_.size(); // number of different nodes sending to dest
if (not updatedlist[comm->destination->id_])
update_IB_factors_rec(comm->destination, updatedlist);
}
- for (std::map<IBNode*, int>::value_type const& comm : root->active_comms_down_) {
- if (not updatedlist[comm.first->id_])
- update_IB_factors_rec(comm.first, updatedlist);
+ for (auto const& [comm, _] : root->active_comms_down_) {
+ if (not updatedlist[comm->id_])
+ update_IB_factors_rec(comm, updatedlist);
}
}
}
to->active_comms_down_[from] -= 1;
to->nb_active_comms_down_--;
- auto it = std::find_if(begin(from->active_comms_up_), end(from->active_comms_up_),
- [action](const ActiveComm* comm) { return comm->action == action; });
- if (it != std::end(from->active_comms_up_)) {
+ if (auto it = std::find_if(begin(from->active_comms_up_), end(from->active_comms_up_),
+ [action](const ActiveComm* comm) { return comm->action == action; });
+ it != std::end(from->active_comms_up_)) {
delete *it;
from->active_comms_up_.erase(it);
}