X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/67d66b0cf79b9fc02c0450f254584693dbf21d3b..a493dab29fff80a4d222c18c3057c811b8b06d3f:/src/surf/network_ib.cpp?ds=sidebyside diff --git a/src/surf/network_ib.cpp b/src/surf/network_ib.cpp index b50b769426..a272167e13 100644 --- a/src/surf/network_ib.cpp +++ b/src/surf/network_ib.cpp @@ -1,4 +1,4 @@ -/* 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. */ @@ -53,7 +53,7 @@ void NetworkIBModel::IB_create_host_callback(s4u::Host const& host) { static int id = 0; auto* ibModel = static_cast(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++; } @@ -61,11 +61,11 @@ void NetworkIBModel::IB_action_state_changed_callback(NetworkAction& action, Act { if (action.get_state() != Action::State::FINISHED) return; - auto* ibModel = static_cast(action.get_model()); - std::pair pair = ibModel->active_comms[&action]; + auto* ibModel = static_cast(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); } @@ -129,8 +129,7 @@ void NetworkIBModel::compute_IB_factors(IBNode* root) const 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 @@ -165,9 +164,9 @@ void NetworkIBModel::update_IB_factors_rec(IBNode* root, std::vector& upda if (not updatedlist[comm->destination->id_]) update_IB_factors_rec(comm->destination, updatedlist); } - for (std::map::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); } } } @@ -184,9 +183,9 @@ void NetworkIBModel::update_IB_factors(NetworkAction* action, IBNode* from, IBNo 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); }