Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
smx processes are now called actors, avoiding confusions in MC
[simgrid.git] / src / mc / LivenessChecker.hpp
index 7ce79ce..751dacc 100644 (file)
@@ -38,7 +38,7 @@ struct XBT_PRIVATE Pair {
   int depth = 0;
   bool exploration_started = false;
 
-  Pair();
+  Pair(unsigned long expanded_pairs);
   ~Pair();
 
   Pair(Pair const&) = delete;
@@ -52,7 +52,7 @@ struct XBT_PRIVATE VisitedPair {
   xbt_automaton_state_t automaton_state = nullptr;
   std::shared_ptr<const std::vector<int>> atomic_propositions;
   std::size_t heap_bytes_used = 0;
-  int nb_processes = 0;
+  int actors_count            = 0;
 
   VisitedPair(
     int pair_num, xbt_automaton_state_t automaton_state,
@@ -68,6 +68,7 @@ public:
   int run() override;
   RecordTrace getRecordTrace() override;
   std::vector<std::string> getTextualTrace() override;
+  void logState() override;
 private:
   int main();
   void prepare();
@@ -81,11 +82,16 @@ private:
   void purgeVisitedPairs();
   void backtrack();
   std::shared_ptr<Pair> newPair(Pair* pair, xbt_automaton_state_t state, std::shared_ptr<const std::vector<int>> propositions);
-public:
+private:
   // A stack of (application_state, automaton_state) pairs for DFS exploration:
   std::list<std::shared_ptr<Pair>> explorationStack_;
   std::list<std::shared_ptr<VisitedPair>> acceptancePairs_;
   std::list<std::shared_ptr<VisitedPair>> visitedPairs_;
+  unsigned long visitedPairsCount_ = 0;
+  unsigned long expandedPairsCount_ = 0;
+  unsigned long expandedStatesCount_ = 0;
+  int previousPair_ = 0;
+  std::string previousRequest_;
 };
 
 }