X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b9f8f01f1e31a9cec9df207ad241e9c732790cc1..d89ca681772fdaafdd69049d4d66676a4e98de38:/src/mc/mc_state.hpp diff --git a/src/mc/mc_state.hpp b/src/mc/mc_state.hpp index 2cac8f9898..6892324f1d 100644 --- a/src/mc/mc_state.hpp +++ b/src/mc/mc_state.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2022. 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. */ @@ -8,7 +8,7 @@ #include "src/mc/Transition.hpp" #include "src/mc/sosp/Snapshot.hpp" -#include "src/mc/mc_pattern.hpp" +#include "src/mc/mc_comm_pattern.hpp" namespace simgrid { namespace mc { @@ -27,6 +27,9 @@ public: /** The simcall which was executed, going out of that state */ s_smx_simcall executed_req_; + /** Observer of the transition leading to that sate */ + RemotePtr remote_observer_; + /* Internal translation of the executed_req simcall * * Simcall::COMM_TESTANY is translated to a Simcall::COMM_TEST @@ -46,16 +49,15 @@ public: explicit State(unsigned long state_number); - std::size_t interleave_size() const; - void add_interleaving_set(const simgrid::kernel::actor::ActorImpl* actor) - { - this->actor_states_[actor->get_pid()].consider(); - } + std::size_t count_todo() const; + void mark_todo(const simgrid::kernel::actor::ActorImpl* actor) { this->actor_states_[actor->get_pid()].mark_todo(); } Transition get_transition() const; + +private: + void copy_incomplete_comm_pattern(); + void copy_index_comm_pattern(); }; } } -XBT_PRIVATE smx_simcall_t MC_state_choose_request(simgrid::mc::State* state); - #endif