X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/84e824746638f2b4c32c315bcfce655098d4e80b..d2cc5a5e537a7b2915f781dd75ad8f4d02f6fcf7:/src/mc/mc_base.cpp diff --git a/src/mc/mc_base.cpp b/src/mc/mc_base.cpp index ff7dbe359e..2a6b270e5e 100644 --- a/src/mc/mc_base.cpp +++ b/src/mc/mc_base.cpp @@ -5,11 +5,8 @@ #include "src/mc/mc_base.h" #include "mc/mc.h" -#include "simgrid/config.h" #include "src/kernel/activity/CommImpl.hpp" #include "src/kernel/activity/MutexImpl.hpp" -#include "src/mc/mc_config.hpp" -#include "src/mc/mc_forward.hpp" #include "src/mc/mc_replay.hpp" #include "src/simix/smx_private.hpp" @@ -46,7 +43,7 @@ void wait_for_requests() for (smx_actor_t const& process : simix_global->actors_that_ran) { smx_simcall_t req = &process->simcall; if (req->call != SIMCALL_NONE && not simgrid::mc::request_is_visible(req)) - SIMIX_simcall_handle(req, 0); + process->simcall_handle(0); } } #if SIMGRID_HAVE_MC @@ -81,6 +78,9 @@ bool actor_is_enabled(smx_actor_t actor) // Now, we are in the client app, no need for remote memory reading. smx_simcall_t req = &actor->simcall; + if (req->transition != nullptr) + return req->transition->fireable(); + switch (req->call) { case SIMCALL_NONE: return false; @@ -153,10 +153,10 @@ bool request_is_visible(smx_simcall_t req) xbt_assert(mc_model_checker == nullptr, "This should be called from the client side"); #endif - return req->call == SIMCALL_COMM_ISEND || req->call == SIMCALL_COMM_IRECV || req->call == SIMCALL_COMM_WAIT || - req->call == SIMCALL_COMM_WAITANY || req->call == SIMCALL_COMM_TEST || req->call == SIMCALL_COMM_TESTANY || - req->call == SIMCALL_MC_RANDOM || req->call == SIMCALL_MUTEX_LOCK || req->call == SIMCALL_MUTEX_TRYLOCK || - req->call == SIMCALL_MUTEX_UNLOCK; + return (req->transition != nullptr && req->transition->visible()) || req->call == SIMCALL_COMM_ISEND || + req->call == SIMCALL_COMM_IRECV || req->call == SIMCALL_COMM_WAIT || req->call == SIMCALL_COMM_WAITANY || + req->call == SIMCALL_COMM_TEST || req->call == SIMCALL_COMM_TESTANY || req->call == SIMCALL_MC_RANDOM || + req->call == SIMCALL_MUTEX_LOCK || req->call == SIMCALL_MUTEX_TRYLOCK || req->call == SIMCALL_MUTEX_UNLOCK; } }