X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e18a7b043d161b29d0bf3f5743cb7a570241576a..55dc01b28906f5bbb804d879031206fb021fad16:/src/mc/mc_base.cpp diff --git a/src/mc/mc_base.cpp b/src/mc/mc_base.cpp index 3e022306ee..c1968fc35a 100644 --- a/src/mc/mc_base.cpp +++ b/src/mc/mc_base.cpp @@ -1,14 +1,19 @@ -/* Copyright (c) 2008-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2008-2018. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include +#include #include "mc/mc.h" #include "src/mc/mc_base.h" -#include "src/mc/mc_replay.h" -#include "src/simix/smx_private.h" +#include "src/mc/mc_config.hpp" +#include "src/mc/mc_forward.hpp" +#include "src/mc/mc_replay.hpp" +#include "src/mc/remote/RemoteClient.hpp" +#include "src/simix/smx_private.hpp" + +#include "src/kernel/activity/MutexImpl.hpp" #if SIMGRID_HAVE_MC #include "src/mc/ModelChecker.hpp" @@ -97,14 +102,9 @@ bool actor_is_enabled(smx_actor_t actor) } case SIMCALL_COMM_WAITANY: { - xbt_dynar_t comms; - simgrid::kernel::activity::CommImpl* act = - static_cast(simcall_comm_wait__getraw__comm(req)); - - comms = simcall_comm_waitany__get__comms(req); - + xbt_dynar_t comms = simcall_comm_waitany__get__comms(req); for (unsigned int index = 0; index < comms->used; ++index) { - act = xbt_dynar_get_as(comms, index, simgrid::kernel::activity::CommImpl*); + simgrid::kernel::activity::CommImpl* act = xbt_dynar_get_as(comms, index, simgrid::kernel::activity::CommImpl*); if (act->src_proc && act->dst_proc) return true; } @@ -116,8 +116,7 @@ bool actor_is_enabled(smx_actor_t actor) if (mutex->owner == nullptr) return true; - else - return mutex->owner->pid == req->issuer->pid; + return mutex->owner->pid == req->issuer->pid; } case SIMCALL_SEM_ACQUIRE: { @@ -181,7 +180,7 @@ static int prng_random(int min, int max) int simcall_HANDLER_mc_random(smx_simcall_t simcall, int min, int max) { - if (not MC_is_active() && not MC_record_path) + if (not MC_is_active() && MC_record_path.empty()) return prng_random(min, max); return simcall->mc_value; }