X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/12e91e5e67ba5779eff3ebe712617c9981567283..a3db60900f2269864e7fdf7050fbf48b8b3065e2:/src/mc/LivenessChecker.cpp diff --git a/src/mc/LivenessChecker.cpp b/src/mc/LivenessChecker.cpp index 3eaefe230a..94a34ef133 100644 --- a/src/mc/LivenessChecker.cpp +++ b/src/mc/LivenessChecker.cpp @@ -287,22 +287,19 @@ int LivenessChecker::insertVisitedPair(std::shared_ptr visited_pair } visitedPairs_.insert(range.first, std::move(visited_pair)); + this->purgeVisitedPairs(); + return -1; +} - if (visitedPairs_.size() > (std::size_t) _sg_mc_visited) { - int min2 = mc_stats->expanded_pairs; - - std::list>::iterator index2; - for (auto i = visitedPairs_.begin(); i != visitedPairs_.end(); ++i) { - if ((*i)->num < min2) { - index2 = i; - min2 = (*i)->num; - } - } - - visitedPairs_.erase(index2); +void LivenessChecker::purgeVisitedPairs() +{ + if (_sg_mc_visited != 0 && visitedPairs_.size() > (std::size_t) _sg_mc_visited) { + // Remove the oldest entry with a linear search: + visitedPairs_.erase(std::min_element( + visitedPairs_.begin(), visitedPairs_.end(), + [](std::shared_ptr const a, std::shared_ptr const& b) { + return a->num < b->num; } )); } - - return -1; } LivenessChecker::LivenessChecker(Session& session) : Checker(session)