#include "src/surf/network_interface.hpp"
#include "src/surf/surf_interface.hpp"
-#include <boost/range/algorithm.hpp>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_network, simix, "SIMIX network-related synchronization");
XBT_PRIVATE void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_actor_t src, smx_mailbox_t mbox, double task_size,
simgrid::kernel::activity::CommImpl** comms = simcall_comm_waitany__get__comms(simcall);
size_t count = simcall_comm_waitany__get__count(simcall);
- for (size_t i = 0; i < count; i++) {
- // Remove the first occurrence of simcall:
- auto* comm = comms[i];
- auto j = boost::range::find(comm->simcalls_, simcall);
- if (j != comm->simcalls_.end())
- comm->simcalls_.erase(j);
- }
+ for (size_t i = 0; i < count; i++)
+ comms[i]->unregister_simcall(simcall);
}
void simcall_HANDLER_comm_waitany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comms[], size_t count,
double timeout)
{
if (MC_is_active() || MC_record_replay_is_active()) {
- if (timeout > 0.0)
- xbt_die("Timeout not implemented for waitany in the model-checker");
+ xbt_assert(timeout <= 0.0, "Timeout not implemented for waitany in the model-checker");
int idx = simcall->mc_value_;
auto* comm = comms[idx];
comm->simcalls_.push_back(simcall);
/* Copy at most dst_buff_size bytes of the message to receiver's buffer */
if (dst_buff_size_) {
- buff_size = std::min(buff_size, *(dst_buff_size_));
+ buff_size = std::min(buff_size, *dst_buff_size_);
/* Update the receiver's buffer size to the copied amount */
*dst_buff_size_ = buff_size;