X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8f57bc97b644d249c36bb311efe044557bc046ed..82cf3d43c742ba91f7c78bae73a0926c8ca71cd6:/src/mc/checker/LivenessChecker.cpp diff --git a/src/mc/checker/LivenessChecker.cpp b/src/mc/checker/LivenessChecker.cpp index e04712b017..2ed9954b8c 100644 --- a/src/mc/checker/LivenessChecker.cpp +++ b/src/mc/checker/LivenessChecker.cpp @@ -30,7 +30,7 @@ VisitedPair::VisitedPair(int pair_num, xbt_automaton_state_t automaton_state, this->graph_state = std::move(graph_state); if(this->graph_state->system_state == nullptr) - this->graph_state->system_state = simgrid::mc::take_snapshot(pair_num); + this->graph_state->system_state = std::make_shared(pair_num); this->heap_bytes_used = mmalloc_get_bytes_used_remote(process->get_heap()->heaplimit, process->get_malloc_info()); this->actors_count = mc_model_checker->process().actors().size(); @@ -80,13 +80,6 @@ std::shared_ptr> LivenessChecker::get_proposition_values( return std::make_shared>(std::move(values)); } -int LivenessChecker::compare(simgrid::mc::VisitedPair* state1, simgrid::mc::VisitedPair* state2) -{ - simgrid::mc::Snapshot* s1 = state1->graph_state->system_state.get(); - simgrid::mc::Snapshot* s2 = state2->graph_state->system_state.get(); - return simgrid::mc::snapshot_compare(s1, s2); -} - std::shared_ptr LivenessChecker::insert_acceptance_pair(simgrid::mc::Pair* pair) { std::shared_ptr new_pair = std::make_shared( @@ -98,10 +91,9 @@ std::shared_ptr LivenessChecker::insert_acceptance_pair(simgrid::mc if (pair->search_cycle) for (auto i = res.first; i != res.second; ++i) { std::shared_ptr const& pair_test = *i; - if (xbt_automaton_state_compare( - pair_test->automaton_state, new_pair->automaton_state) != 0 - || *(pair_test->atomic_propositions) != *(new_pair->atomic_propositions) - || this->compare(pair_test.get(), new_pair.get()) != 0) + if (xbt_automaton_state_compare(pair_test->automaton_state, new_pair->automaton_state) != 0 || + *(pair_test->atomic_propositions) != *(new_pair->atomic_propositions) || + not snapshot_equal(pair_test->graph_state->system_state.get(), new_pair->graph_state->system_state.get())) continue; XBT_INFO("Pair %d already reached (equal to pair %d) !", new_pair->num, pair_test->num); exploration_stack_.pop_back(); @@ -200,11 +192,10 @@ int LivenessChecker::insert_visited_pair(std::shared_ptr visited_pa for (auto i = range.first; i != range.second; ++i) { VisitedPair* pair_test = i->get(); - if (xbt_automaton_state_compare( - pair_test->automaton_state, visited_pair->automaton_state) != 0 - || *(pair_test->atomic_propositions) != *(visited_pair->atomic_propositions) - || this->compare(pair_test, visited_pair.get()) != 0) - continue; + if (xbt_automaton_state_compare(pair_test->automaton_state, visited_pair->automaton_state) != 0 || + *(pair_test->atomic_propositions) != *(visited_pair->atomic_propositions) || + not snapshot_equal(pair_test->graph_state->system_state.get(), visited_pair->graph_state->system_state.get())) + continue; if (pair_test->other_num == -1) visited_pair->other_num = pair_test->num; else