X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/799a432e8ac74a0a84feb8dbf7a78a14068050b3..3a1ea70a418f393ca1677074e928c664022295bd:/src/mc/Session.cpp?ds=sidebyside diff --git a/src/mc/Session.cpp b/src/mc/Session.cpp index 542f73cc9a..0dd371035a 100644 --- a/src/mc/Session.cpp +++ b/src/mc/Session.cpp @@ -15,6 +15,8 @@ #include "xbt/log.h" #include "xbt/system_error.hpp" +#include + #include #ifdef __linux__ #include @@ -85,8 +87,8 @@ Session::Session(const std::function& code) xbt_assert(mc_model_checker == nullptr, "Did you manage to start the MC twice in this process?"); - auto process = std::unique_ptr(new simgrid::mc::RemoteClientMemory(pid, sockets[1])); - model_checker_.reset(new simgrid::mc::ModelChecker(std::move(process))); + auto process = std::make_unique(pid); + model_checker_ = std::make_unique(std::move(process), sockets[1]); mc_model_checker = model_checker_.get(); model_checker_->start(); @@ -105,18 +107,18 @@ void Session::initialize() initial_snapshot_ = std::make_shared(0); } -void Session::execute(Transition const& transition) +void Session::execute(Transition const& transition) const { model_checker_->handle_simcall(transition); model_checker_->wait_for_requests(); } -void Session::restore_initial_state() +void Session::restore_initial_state() const { - this->initial_snapshot_->restore(&model_checker_->process()); + this->initial_snapshot_->restore(&model_checker_->get_remote_simulation()); } -void Session::log_state() +void Session::log_state() const { model_checker_->getChecker()->log_state(); @@ -141,12 +143,12 @@ void Session::close() } } -bool Session::actor_is_enabled(aid_t pid) +bool Session::actor_is_enabled(aid_t pid) const { s_mc_message_actor_enabled_t msg{MC_MESSAGE_ACTOR_ENABLED, pid}; - model_checker_->process().get_channel().send(msg); + model_checker_->channel().send(msg); char buff[MC_MESSAGE_LENGTH]; - ssize_t received = model_checker_->process().get_channel().receive(buff, MC_MESSAGE_LENGTH, true); + ssize_t received = model_checker_->channel().receive(buff, MC_MESSAGE_LENGTH, true); xbt_assert(received == sizeof(s_mc_message_int_t), "Unexpected size in answer to ACTOR_ENABLED"); return ((s_mc_message_int_t*)buff)->value; }