From: Marion Guthmuller Date: Wed, 3 Apr 2013 09:34:47 +0000 (+0200) Subject: model-checker : iSend/iRecv independent with Wait but not with WaitTimeout X-Git-Tag: v3_9_90~412^2~60 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e42c0a20b488f6fa0f3bb084bb4429bf9572bea6?hp=eed2329ef0f23c6c80c8268b6c52f212d1aa47b4 model-checker : iSend/iRecv independent with Wait but not with WaitTimeout --- diff --git a/src/mc/mc_request.c b/src/mc/mc_request.c index c57dc08b0c..f92580b157 100644 --- a/src/mc/mc_request.c +++ b/src/mc/mc_request.c @@ -32,13 +32,13 @@ int MC_request_depend(smx_simcall_t r1, smx_simcall_t r2) { smx_rdv_t rdv = r1->call == SIMCALL_COMM_ISEND ? simcall_comm_isend__get__rdv(r1) : simcall_comm_irecv__get__rdv(r1); - if(simcall_comm_wait__get__comm(r2)->comm.rdv != rdv) + if((simcall_comm_wait__get__comm(r2)->comm.rdv != rdv) && (simcall_comm_wait__get__timeout(r2) <= 0)) return FALSE; - if(simcall_comm_wait__get__comm(r2)->comm.type == SIMIX_COMM_SEND && r1->call == SIMCALL_COMM_ISEND) + if((simcall_comm_wait__get__comm(r2)->comm.type == SIMIX_COMM_SEND) && (r1->call == SIMCALL_COMM_ISEND) && (simcall_comm_wait__get__timeout(r2) <= 0)) return FALSE; - if(simcall_comm_wait__get__comm(r2)->comm.type == SIMIX_COMM_RECEIVE && r1->call == SIMCALL_COMM_IRECV) + if((simcall_comm_wait__get__comm(r2)->comm.type == SIMIX_COMM_RECEIVE) && (r1->call == SIMCALL_COMM_IRECV) && (simcall_comm_wait__get__timeout(r2) <= 0)) return FALSE; } @@ -50,13 +50,13 @@ int MC_request_depend(smx_simcall_t r1, smx_simcall_t r2) { smx_rdv_t rdv = r2->call == SIMCALL_COMM_ISEND ? simcall_comm_isend__get__rdv(r2) : simcall_comm_irecv__get__rdv(r2); - if(simcall_comm_wait__get__comm(r1)->comm.rdv != rdv) + if((simcall_comm_wait__get__comm(r1)->comm.rdv != rdv) && (simcall_comm_wait__get__timeout(r1) <= 0)) return FALSE; - if(simcall_comm_wait__get__comm(r1)->comm.type == SIMIX_COMM_SEND && r2->call == SIMCALL_COMM_ISEND) + if((simcall_comm_wait__get__comm(r1)->comm.type == SIMIX_COMM_SEND) && (r2->call == SIMCALL_COMM_ISEND) && (simcall_comm_wait__get__timeout(r1) <= 0)) return FALSE; - if(simcall_comm_wait__get__comm(r1)->comm.type == SIMIX_COMM_RECEIVE && r2->call == SIMCALL_COMM_IRECV) + if((simcall_comm_wait__get__comm(r1)->comm.type == SIMIX_COMM_RECEIVE) && (r2->call == SIMCALL_COMM_IRECV) && (simcall_comm_wait__get__timeout(r1) <= 0)) return FALSE; }