X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/122a5a2813fd6d64d4db8ee7f1fdb5a62b7e0d6a..7e625e5e848a284b522d69ec28cb111f1f88515b:/src/mc/transition/TransitionAny.hpp diff --git a/src/mc/transition/TransitionAny.hpp b/src/mc/transition/TransitionAny.hpp index b0648119b1..35cbf4e391 100644 --- a/src/mc/transition/TransitionAny.hpp +++ b/src/mc/transition/TransitionAny.hpp @@ -10,6 +10,7 @@ #include "src/mc/transition/Transition.hpp" #include "src/mc/transition/TransitionComm.hpp" +#include #include #include @@ -22,16 +23,15 @@ public: TestAnyTransition(aid_t issuer, int times_considered, std::stringstream& stream); std::string to_string(bool verbose) const override; bool depends(const Transition* other) const override; + bool reversible_race(const Transition* other) const override; Transition* get_current_transition() const { return transitions_.at(times_considered_); } bool result() const { - for (Transition* transition : transitions_) { - CommTestTransition* tested_transition = static_cast(transition); - if (tested_transition->get_sender() != -1 and tested_transition->get_receiver() != -1) - return true; - } - return false; + return std::any_of(begin(transitions_), end(transitions_), [](const Transition* transition) { + const auto* tested_transition = static_cast(transition); + return (tested_transition->get_sender() != -1 && tested_transition->get_receiver() != -1); + }); } }; @@ -42,6 +42,7 @@ public: WaitAnyTransition(aid_t issuer, int times_considered, std::stringstream& stream); std::string to_string(bool verbose) const override; bool depends(const Transition* other) const override; + bool reversible_race(const Transition* other) const override; Transition* get_current_transition() const { return transitions_.at(times_considered_); } };