#include "src/mc/mc_comm_pattern.h"
#include "src/mc/mc_smx.h"
#include "src/mc/mc_xbt.hpp"
+#include "src/mc/Checker.hpp"
+#include "src/mc/CommunicationDeterminismChecker.hpp"
using simgrid::mc::remote;
e_mc_call_type_t call_type, smx_simcall_t req,
int value, xbt_dynar_t pattern, int backtracking)
{
+ // HACK, do not rely on the Checker implementation outside of it
+ simgrid::mc::CommunicationDeterminismChecker* checker =
+ (simgrid::mc::CommunicationDeterminismChecker*) mc_model_checker->getChecker();
switch(call_type) {
case MC_CALL_TYPE_NONE:
break;
case MC_CALL_TYPE_SEND:
case MC_CALL_TYPE_RECV:
- MC_get_comm_pattern(pattern, req, call_type, backtracking);
+ checker->get_comm_pattern(pattern, req, call_type, backtracking);
break;
case MC_CALL_TYPE_WAIT:
case MC_CALL_TYPE_WAITANY:
// 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(), &comm_addr,
remote(simcall_comm_waitany__get__comms(req)), value, sizeof(comm_addr));
- MC_complete_comm_pattern(pattern, comm_addr,
+ checker->complete_comm_pattern(pattern, comm_addr,
MC_smx_simcall_get_issuer(req)->pid, backtracking);
}
break;