X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/609b277351c837356a7b284127eed888eca3620d..b7c53df18dcbf388f0dce6d7baa3086436028313:/src/kernel/activity/CommImpl.cpp diff --git a/src/kernel/activity/CommImpl.cpp b/src/kernel/activity/CommImpl.cpp index 8785fb7bac..9b57df5743 100644 --- a/src/kernel/activity/CommImpl.cpp +++ b/src/kernel/activity/CommImpl.cpp @@ -3,18 +3,17 @@ /* 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. */ +#include +#include +#include +#include + #include "src/kernel/activity/CommImpl.hpp" -#include "simgrid/Exception.hpp" -#include "simgrid/kernel/resource/Action.hpp" -#include "simgrid/kernel/routing/NetPoint.hpp" -#include "simgrid/modelchecker.h" -#include "simgrid/s4u/Host.hpp" #include "src/kernel/activity/MailboxImpl.hpp" #include "src/kernel/context/Context.hpp" #include "src/mc/mc_replay.hpp" #include "src/surf/cpu_interface.hpp" #include "src/surf/network_interface.hpp" -#include "src/surf/surf_interface.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_network, simix, "SIMIX network-related synchronization"); @@ -55,11 +54,11 @@ XBT_PRIVATE simgrid::kernel::activity::ActivityImplPtr simcall_HANDLER_comm_isen if (not other_comm) { other_comm = std::move(this_comm); - if (mbox->permanent_receiver_ != nullptr) { + if (mbox->is_permanent()) { // this mailbox is for small messages, which have to be sent right now other_comm->state_ = simgrid::kernel::activity::State::READY; - other_comm->dst_actor_ = mbox->permanent_receiver_.get(); - mbox->done_comm_queue_.push_back(other_comm); + other_comm->dst_actor_ = mbox->get_permanent_receiver().get(); + mbox->push_done(other_comm); XBT_DEBUG("pushing a message into the permanent receive list %p, comm %p", mbox, other_comm.get()); } else { @@ -119,7 +118,7 @@ simcall_HANDLER_comm_irecv(smx_simcall_t /*simcall*/, smx_actor_t receiver, smx_ simgrid::kernel::activity::CommImplPtr other_comm; // communication already done, get it inside the list of completed comms - if (mbox->permanent_receiver_ != nullptr && not mbox->done_comm_queue_.empty()) { + if (mbox->is_permanent() && mbox->has_some_done_comm()) { XBT_DEBUG("We have a comm that has probably already been received, trying to match it, to skip the communication"); // find a match in the list of already received comms other_comm = mbox->find_matching_comm(simgrid::kernel::activity::CommImpl::Type::SEND, match_fun, data, @@ -150,7 +149,7 @@ simcall_HANDLER_comm_irecv(smx_simcall_t /*simcall*/, smx_actor_t receiver, smx_ /*remove_matching*/ true); if (other_comm == nullptr) { - XBT_DEBUG("Receive pushed first (%zu comm enqueued so far)", mbox->comm_queue_.size()); + XBT_DEBUG("Receive pushed first (%zu comm enqueued so far)", mbox->size()); other_comm = std::move(this_synchro); mbox->push(other_comm); } else { @@ -206,6 +205,7 @@ void simcall_HANDLER_comm_waitany(smx_simcall_t simcall, simgrid::kernel::activi /******************************************************************************/ /* SIMIX_comm_copy_data callbacks */ /******************************************************************************/ +// XBT_ATTRIB_DEPRECATED_v333 void SIMIX_comm_set_copy_data_callback(void (*callback)(simgrid::kernel::activity::CommImpl*, void*, size_t)) { simgrid::kernel::activity::CommImpl::set_copy_data_callback(callback);