X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/42e47242b26a374aa63a9a29b1ac79c443213220..244ffce80a9e2390e24b9788114de037e4ccc0ae:/src/mc/mc_base.cpp diff --git a/src/mc/mc_base.cpp b/src/mc/mc_base.cpp index 781a5ee262..9791f51e71 100644 --- a/src/mc/mc_base.cpp +++ b/src/mc/mc_base.cpp @@ -1,24 +1,20 @@ -/* Copyright (c) 2008-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2008-2023. 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 "src/mc/mc_base.hpp" -#include "mc/mc.h" #include "src/kernel/EngineImpl.hpp" #include "src/kernel/activity/CommImpl.hpp" #include "src/kernel/activity/MutexImpl.hpp" #include "src/kernel/actor/SimcallObserver.hpp" -#include "src/mc/mc_replay.hpp" -#if SIMGRID_HAVE_MC -#include "src/mc/ModelChecker.hpp" -#include "src/mc/api/RemoteApp.hpp" -#include "src/mc/remote/AppSide.hpp" -#include "src/mc/remote/RemoteProcess.hpp" -#endif +#include "src/mc/mc.h" +#include "src/mc/mc_config.hpp" +#include "src/mc/mc_replay.hpp" XBT_LOG_NEW_DEFAULT_CATEGORY(mc, "All MC categories"); +bool simgrid_mc_replay_show_backtraces = false; namespace simgrid::mc { @@ -26,6 +22,8 @@ void execute_actors() { auto* engine = kernel::EngineImpl::get_instance(); + XBT_DEBUG("execute_actors: %lu of %zu to run (%s)", engine->get_actor_to_run_count(), engine->get_actor_count(), + (MC_record_replay_is_active() ? "replay active" : "no replay")); while (engine->has_actors_to_run()) { engine->run_all_actors(); for (auto const& actor : engine->get_actors_that_ran()) { @@ -47,12 +45,10 @@ void execute_actors() * transition for ever. * This is controlled in the is_enabled() method of the corresponding observers. */ -// Called from both MCer and MCed: bool actor_is_enabled(kernel::actor::ActorImpl* actor) { -#if SIMGRID_HAVE_MC - xbt_assert(mc_model_checker == nullptr, "This should be called from the client side"); -#endif + xbt_assert(get_model_checking_mode() != ModelCheckingMode::CHECKER_SIDE, + "This should be called from the client side"); // Now, we are in the client app, no need for remote memory reading. kernel::actor::Simcall* req = &actor->simcall_; @@ -72,13 +68,12 @@ bool actor_is_enabled(kernel::actor::ActorImpl* actor) */ bool request_is_visible(const kernel::actor::Simcall* req) { -#if SIMGRID_HAVE_MC - xbt_assert(mc_model_checker == nullptr, "This should be called from the client side"); -#endif - if (req->observer_ != nullptr) - return req->observer_->is_visible(); - else + xbt_assert(get_model_checking_mode() != ModelCheckingMode::CHECKER_SIDE, + "This should be called from the client side"); + + if (req->observer_ == nullptr) return false; + return req->observer_->is_visible(); } } // namespace simgrid::mc