X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/026045c5de7c9b574fc67c8b11a3cf64a35c3109..3f9b311ec56db95ec539001a860ae3c838c48312:/src/mc/transition/TransitionObjectAccess.cpp diff --git a/src/mc/transition/TransitionObjectAccess.cpp b/src/mc/transition/TransitionObjectAccess.cpp index 63a7d92fc3..f32e459008 100644 --- a/src/mc/transition/TransitionObjectAccess.cpp +++ b/src/mc/transition/TransitionObjectAccess.cpp @@ -34,9 +34,23 @@ std::string ObjectAccessTransition::to_string(bool verbose) const } bool ObjectAccessTransition::depends(const Transition* o) const { + if (o->type_ < type_) + return o->depends(this); + + // Actions executed by the same actor are always dependent + if (o->aid_ == aid_) + return true; + if (const auto* other = dynamic_cast(o)) return objaddr_ == other->objaddr_; // dependent only if it's an access to the same object return false; } +bool ObjectAccessTransition::reversible_race(const Transition* other) const +{ + xbt_assert(type_ == Type::OBJECT_ACCESS, "Unexpected transition type %s", to_c_str(type_)); + + return true; // Object access is always enabled +} + } // namespace simgrid::mc