#include "src/mc/checker/CommunicationDeterminismChecker.hpp"
#include "src/mc/mc_comm_pattern.hpp"
#include "src/mc/mc_smx.hpp"
-#include "src/mc/mc_xbt.hpp"
using simgrid::mc::remote;
state->communicationIndices.push_back(list_process_comm->index_comm);
}
-void MC_handle_comm_pattern(
- e_mc_call_type_t call_type, smx_simcall_t req,
- int value, xbt_dynar_t pattern, int backtracking)
+void MC_handle_comm_pattern(e_mc_call_type_t call_type, smx_simcall_t req, int value, int backtracking)
{
// HACK, do not rely on the Checker implementation outside of it
simgrid::mc::CommunicationDeterminismChecker* checker =
break;
case MC_CALL_TYPE_SEND:
case MC_CALL_TYPE_RECV:
- checker->get_comm_pattern(pattern, req, call_type, backtracking);
+ checker->get_comm_pattern(req, call_type, backtracking);
break;
case MC_CALL_TYPE_WAIT:
case MC_CALL_TYPE_WAITANY:
comm_addr = remote(static_cast<simgrid::kernel::activity::CommImpl*>(simcall_comm_wait__getraw__comm(req)));
else {
- simgrid::kernel::activity::CommImpl* addr;
- // comm_addr = REMOTE(xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), value, smx_synchro_t)):
- simgrid::mc::read_element(mc_model_checker->process(), &addr, remote(simcall_comm_waitany__get__comms(req)),
- value, sizeof(comm_addr));
- comm_addr = remote(addr);
+ simgrid::kernel::activity::ActivityImpl* addr;
+ addr = mc_model_checker->process().read(remote(simcall_comm_waitany__getraw__comms(req) + value));
+ comm_addr = remote(static_cast<simgrid::kernel::activity::CommImpl*>(addr));
}
- checker->complete_comm_pattern(pattern, comm_addr, MC_smx_simcall_get_issuer(req)->pid_, backtracking);
+ checker->complete_comm_pattern(comm_addr, MC_smx_simcall_get_issuer(req)->get_pid(), backtracking);
}
break;
default: