X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/97e476dc536bfd9fada85509d1c1f93714d46a10..7e625e5e848a284b522d69ec28cb111f1f88515b:/src/mc/transition/TransitionSynchro.hpp diff --git a/src/mc/transition/TransitionSynchro.hpp b/src/mc/transition/TransitionSynchro.hpp index bea07f268f..d8b7d030eb 100644 --- a/src/mc/transition/TransitionSynchro.hpp +++ b/src/mc/transition/TransitionSynchro.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2015-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -8,8 +8,9 @@ #include "src/mc/transition/Transition.hpp" -namespace simgrid { -namespace mc { +#include + +namespace simgrid::mc { class BarrierTransition : public Transition { unsigned bar_; @@ -18,6 +19,7 @@ public: std::string to_string(bool verbose) const override; BarrierTransition(aid_t issuer, int times_considered, Type type, std::stringstream& stream); bool depends(const Transition* other) const override; + bool reversible_race(const Transition* other) const override; }; class MutexTransition : public Transition { @@ -28,19 +30,26 @@ public: std::string to_string(bool verbose) const override; MutexTransition(aid_t issuer, int times_considered, Type type, std::stringstream& stream); bool depends(const Transition* other) const override; + bool reversible_race(const Transition* other) const override; + + uintptr_t get_mutex() const { return this->mutex_; } + aid_t get_owner() const { return this->owner_; } }; class SemaphoreTransition : public Transition { - uintptr_t sem_; + unsigned int sem_; // ID bool granted_; + unsigned capacity_; public: std::string to_string(bool verbose) const override; SemaphoreTransition(aid_t issuer, int times_considered, Type type, std::stringstream& stream); bool depends(const Transition* other) const override; + bool reversible_race(const Transition* other) const override; + + int get_capacity() const { return capacity_; } }; -} // namespace mc -} // namespace simgrid +} // namespace simgrid::mc #endif