Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / src / mc / explo / UdporChecker.cpp
index 4de2bdbc850de4b7e72e3f94b13896b94296c3eb..e367890ea9ebee1f105e802e33721de0b02ebde0 100644 (file)
@@ -214,7 +214,7 @@ void UdporChecker::restore_program_state_with_current_stack()
   for (const std::unique_ptr<State>& state : state_stack) {
     if (state == state_stack.back()) /* If we are arrived on the target state, don't replay the outgoing transition */
       break;
-    state->get_transition()->replay(get_remote_app());
+    state->get_transition_out()->replay(get_remote_app());
   }
 }
 
@@ -298,9 +298,9 @@ void UdporChecker::clean_up_explore(const UnfoldingEvent* e, const Configuration
     XBT_DEBUG("Moving {%s} from U to G...", to_remove.to_string().c_str());
     clean_up_set.form_union(to_remove);
   }
-  // TODO: We compute everything... but we don't actually
-  // remove anything yet. This is a workaround until
-  // we figure out how to deal with the fact that the previous
+
+  // TODO: We still perhaps need to
+  // figure out how to deal with the fact that the previous
   // extension sets computed for past configurations
   // contain events that may be removed from `U`. Perhaps
   // it would be best to keep them around forever (they
@@ -312,28 +312,19 @@ void UdporChecker::clean_up_explore(const UnfoldingEvent* e, const Configuration
   // more efficient (we have to search all of `U` for such conflicts,
   // and there would be no reason to search those events
   // that UDPOR has marked as no longer being important)
-  //
-  // this->unfolding.remove(clean_up_set);
+  // For now, there appear to be no "obvious" issues (although
+  // UDPOR's behavior is often far from obvious...)
+  this->unfolding.mark_finished(clean_up_set);
 }
 
 RecordTrace UdporChecker::get_record_trace()
 {
   RecordTrace res;
   for (auto const& state : state_stack)
-    res.push_back(state->get_transition());
+    res.push_back(state->get_transition_out().get());
   return res;
 }
 
-std::vector<std::string> UdporChecker::get_textual_trace()
-{
-  std::vector<std::string> trace;
-  for (auto const& state : state_stack) {
-    const auto* t = state->get_transition();
-    trace.push_back(xbt::string_printf("%ld: %s", t->aid_, t->to_string().c_str()));
-  }
-  return trace;
-}
-
 } // namespace simgrid::mc::udpor
 
 namespace simgrid::mc {