X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8dc7c0693d2606e9cb9f21bcced90a5174bd503..6d145186f32771e549c6171cf9434c2c1e2710f4:/src/mc/mc_state.hpp diff --git a/src/mc/mc_state.hpp b/src/mc/mc_state.hpp index 6d66849184..c99c21181c 100644 --- a/src/mc/mc_state.hpp +++ b/src/mc/mc_state.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2020. 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. */ @@ -53,13 +53,13 @@ public: } }; -/* On every state, each process has an entry of the following type. - * This represents both the process and its transition because - * a process cannot have more than one enabled transition at a given time. +/* On every state, each actor has an entry of the following type. + * This represents both the actor and its transition because + * an actor cannot have more than one enabled transition at a given time. */ -class ProcessState { - /* Possible exploration status of a process transition in a state. - * Either the checker did not consider the transition, or it was considered and to do, or considered and done. +class ActorState { + /* Possible exploration status of a actor transition in a state. + * Either the checker did not consider the transition, or it was considered and still to do, or considered and done. */ enum class InterleavingType { /** This actor transition is not considered by the checker (yet?) */ @@ -90,15 +90,14 @@ public: void set_done() { this->state = InterleavingType::done; } }; -/* A node in the exploration graph (kind-of) - */ +/* A node in the exploration graph (kind-of) */ class XBT_PRIVATE State { public: /** Sequential state number (used for debugging) */ int num_ = 0; /** State's exploration status by process */ - std::vector actor_states_; + std::vector actor_states_; Transition transition_; @@ -110,13 +109,13 @@ public: * SIMCALL_COMM_TESTANY is translated to a SIMCALL_COMM_TEST * and SIMCALL_COMM_WAITANY to a SIMCALL_COMM_WAIT. */ - s_smx_simcall internal_req; + s_smx_simcall internal_req_; /* Can be used as a copy of the remote synchro object */ - simgrid::mc::Remote internal_comm; + simgrid::mc::Remote internal_comm_; /** Snapshot of system state (if needed) */ - std::shared_ptr system_state; + std::shared_ptr system_state_; // For CommunicationDeterminismChecker std::vector> incomplete_comm_pattern_; @@ -125,12 +124,15 @@ public: explicit State(unsigned long state_number); std::size_t interleave_size() const; - void add_interleaving_set(smx_actor_t actor) { this->actor_states_[actor->get_pid()].consider(); } + void add_interleaving_set(const simgrid::kernel::actor::ActorImpl* actor) + { + this->actor_states_[actor->get_pid()].consider(); + } Transition get_transition() const; }; } } -XBT_PRIVATE smx_simcall_t MC_state_get_request(simgrid::mc::State* state); +XBT_PRIVATE smx_simcall_t MC_state_choose_request(simgrid::mc::State* state); #endif