X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5a99bd94a2cedf8b455e78de53b19bebab8c034e..eca09d65271990fdae84e1d7da71916740a9c50b:/src/mc/mc_base.c diff --git a/src/mc/mc_base.c b/src/mc/mc_base.c index 82ca8c6a4f..2a587228ab 100644 --- a/src/mc/mc_base.c +++ b/src/mc/mc_base.c @@ -35,6 +35,7 @@ int MC_request_is_enabled(smx_simcall_t req) { unsigned int index = 0; smx_synchro_t act = 0; + smx_mutex_t mutex = NULL; switch (req->call) { case SIMCALL_NONE: @@ -63,6 +64,13 @@ int MC_request_is_enabled(smx_simcall_t req) return TRUE; return FALSE; + case SIMCALL_MUTEX_LOCK: + mutex = simcall_mutex_lock__get__mutex(req); + if(mutex->owner == NULL) + return TRUE; + else + return (mutex->owner->pid == req->issuer->pid); + default: /* The rest of the requests are always enabled */ return TRUE; @@ -78,6 +86,7 @@ int MC_request_is_visible(smx_simcall_t req) || req->call == SIMCALL_COMM_TEST || req->call == SIMCALL_COMM_TESTANY || req->call == SIMCALL_MC_RANDOM + || req->call == SIMCALL_MUTEX_LOCK #ifdef HAVE_MC || req->call == SIMCALL_MC_SNAPSHOT || req->call == SIMCALL_MC_COMPARE_SNAPSHOTS