#include "simgrid/sg_config.h"
#include "colls/colls.h"
+#include "src/simix/SynchroComm.hpp"
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_base, smpi, "Logging specific to SMPI (base)");
static int match_recv(void* a, void* b, smx_synchro_t ignored) {
if ((*request)->action != NULL) { // this is not a detached send
simcall_comm_wait((*request)->action, -1.0);
- if((MC_is_active() || MC_record_replay_is_active()) && (*request)->action)
- (*request)->action->comm.dst_data = NULL; // dangling pointer : dst_data is freed with a wait, need to set it to
- // NULL for system state comparison
+ if((MC_is_active() || MC_record_replay_is_active()) && (*request)->action) {
+ simgrid::simix::Comm *comm = dynamic_cast<simgrid::simix::Comm*>( (*request)->action );
+
+ comm->dst_data = NULL; // dangling pointer: dst_data is freed with a wait, need to set it to NULL for system state comparison
+ }
}
finish_wait(request, status);