X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/418ac8d537f356100767b8a21f65e16f7ba1d986..3fab894cbce7d5bdd43a6fc9aa647b3809d63507:/src/smpi/smpi_base.cpp diff --git a/src/smpi/smpi_base.cpp b/src/smpi/smpi_base.cpp index 613e09817e..eeaada79e5 100644 --- a/src/smpi/smpi_base.cpp +++ b/src/smpi/smpi_base.cpp @@ -856,7 +856,8 @@ void smpi_mpi_iprobe(int source, int tag, MPI_Comm comm, int* flag, MPI_Status* } if (request->action){ - MPI_Request req = (MPI_Request)SIMIX_comm_get_src_data(request->action); + simgrid::simix::Comm *sync_comm = static_cast(request->action); + MPI_Request req = (MPI_Request)sync_comm->src_data; *flag = 1; if(status != MPI_STATUS_IGNORE && !(req->flags & PREPARED)) { status->MPI_SOURCE = smpi_group_rank(smpi_comm_group(comm), req->src); @@ -883,16 +884,10 @@ void smpi_mpi_wait(MPI_Request * request, MPI_Status * status) return; } - if ((*request)->action != NULL) { // this is not a detached send + 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) { - simgrid::simix::Comm *comm = dynamic_cast( (*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); if (*request != MPI_REQUEST_NULL && ((*request)->flags & NON_PERSISTENT)) *request = MPI_REQUEST_NULL;