X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/110611a47775c196abcea00af670b876147961ab..517f86be9ef7be0099cc50dfd103786fc80552d1:/src/mc/LivenessChecker.hpp diff --git a/src/mc/LivenessChecker.hpp b/src/mc/LivenessChecker.hpp index 962bf6442d..72bec38aec 100644 --- a/src/mc/LivenessChecker.hpp +++ b/src/mc/LivenessChecker.hpp @@ -11,6 +11,8 @@ #include #include +#include +#include #include #include @@ -32,13 +34,12 @@ extern XBT_PRIVATE xbt_automaton_t property_automaton; struct XBT_PRIVATE Pair { int num = 0; int search_cycle = 0; - simgrid::mc::State* graph_state = nullptr; /* System state included */ + std::shared_ptr graph_state = nullptr; /* System state included */ xbt_automaton_state_t automaton_state = nullptr; - simgrid::xbt::unique_ptr atomic_propositions; + std::vector atomic_propositions; int requests = 0; int depth = 0; int exploration_started = 0; - int visited_pair_removed = 0; Pair(); ~Pair(); @@ -51,19 +52,20 @@ struct XBT_PRIVATE VisitedPair { int num = 0; int other_num = 0; /* Dot output for */ int acceptance_pair = 0; - simgrid::mc::State* graph_state = nullptr; /* System state included */ + std::shared_ptr graph_state = nullptr; /* System state included */ xbt_automaton_state_t automaton_state = nullptr; - simgrid::xbt::unique_ptr atomic_propositions; + std::vector atomic_propositions; std::size_t heap_bytes_used = 0; int nb_processes = 0; - int acceptance_removed = 0; - int visited_removed = 0; - VisitedPair(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions, simgrid::mc::State* graph_state); + VisitedPair( + int pair_num, xbt_automaton_state_t automaton_state, + std::vector const& atomic_propositions, + std::shared_ptr graph_state); ~VisitedPair(); }; -class LivenessChecker : public Checker { +class XBT_PRIVATE LivenessChecker : public Checker { public: LivenessChecker(Session& session); ~LivenessChecker(); @@ -74,15 +76,16 @@ private: int main(); void prepare(); int compare(simgrid::mc::VisitedPair* state1, simgrid::mc::VisitedPair* state2); - simgrid::xbt::unique_ptr getPropositionValues(); - simgrid::mc::VisitedPair* insertAcceptancePair(simgrid::mc::Pair* pair); - int insertVisitedPair(simgrid::mc::VisitedPair* visited_pair, simgrid::mc::Pair* pair); + std::vector getPropositionValues(); + std::shared_ptr insertAcceptancePair(simgrid::mc::Pair* pair); + int insertVisitedPair(std::shared_ptr visited_pair, simgrid::mc::Pair* pair); void showAcceptanceCycle(std::size_t depth); void replay(); void removeAcceptancePair(int pair_num); -public: // (non-static wannabe) fields - static xbt_dynar_t acceptance_pairs; - static std::list liveness_stack; +public: + std::list> acceptancePairs_; + std::list livenessStack_; + std::list> visitedPairs_; }; }