Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mc_api::restore_state() is defined, it is used in SafetyChecker::restore_state()...
authorEhsan Azimi <eazimi@ehsan.irisa.fr>
Mon, 30 Nov 2020 08:31:18 +0000 (09:31 +0100)
committerEhsan Azimi <eazimi@ehsan.irisa.fr>
Mon, 30 Nov 2020 08:31:18 +0000 (09:31 +0100)
src/mc/checker/CommunicationDeterminismChecker.cpp
src/mc/checker/SafetyChecker.cpp
src/mc/mc_api.cpp
src/mc/mc_api.hpp

index 9ac7aa3..9c13a66 100644 (file)
@@ -338,7 +338,7 @@ void CommunicationDeterminismChecker::restoreState()
   /* Intermediate backtracking */
   State* last_state = stack_.back().get();
   if (last_state->system_state_) {
-    last_state->system_state_->restore(&mcapi::get().mc_get_remote_simulation());
+    mc_api::get().restore_state(last_state->system_state_);
     MC_restore_communications_pattern(last_state);
     return;
   }
index c8d29ec..9ba128f 100644 (file)
@@ -251,7 +251,7 @@ void SafetyChecker::restore_state()
   /* Intermediate backtracking */
   const State* last_state = stack_.back().get();
   if (last_state->system_state_) {
-    last_state->system_state_->restore(&mcapi::get().mc_get_remote_simulation());
+    mc_api::get().restore_state(last_state->system_state_);
     return;
   }
 
index 3c5412e..dbec9d9 100644 (file)
@@ -461,6 +461,11 @@ int mc_api::get_smpi_request_tag(smx_simcall_t const& simcall, simgrid::simix::S
 }
 #endif
 
+void mc_api::restore_state(std::shared_ptr<simgrid::mc::Snapshot> system_state) const
+{
+  system_state->restore(&mc_model_checker->get_remote_simulation());
+}
+
 bool mc_api::snapshot_equal(const Snapshot* s1, const Snapshot* s2) const
 {
   return simgrid::mc::snapshot_equal(s1, s2);
index b7a98a3..0abe234 100644 (file)
@@ -89,6 +89,9 @@ public:
   int get_smpi_request_tag(smx_simcall_t const& simcall, simgrid::simix::Simcall type) const;
   #endif
 
+  // STATE APIs
+  void restore_state(std::shared_ptr<simgrid::mc::Snapshot> system_state) const;
+
   // SNAPSHOT APIs
   bool snapshot_equal(const Snapshot* s1, const Snapshot* s2) const;
   simgrid::mc::Snapshot* take_snapshot(int num_state) const;