X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/814b4af8e1656a989525ed0636b88d4e7c0b026c..7e625e5e848a284b522d69ec28cb111f1f88515b:/src/mc/transition/TransitionComm.hpp diff --git a/src/mc/transition/TransitionComm.hpp b/src/mc/transition/TransitionComm.hpp index 597a5300c7..1e9d0748cf 100644 --- a/src/mc/transition/TransitionComm.hpp +++ b/src/mc/transition/TransitionComm.hpp @@ -21,118 +21,94 @@ class CommTestTransition; class CommWaitTransition : public Transition { bool timeout_; - uintptr_t comm_; + unsigned comm_; + unsigned mbox_; aid_t sender_; aid_t receiver_; - unsigned mbox_; - uintptr_t sbuff_; - uintptr_t rbuff_; - size_t size_; friend CommRecvTransition; friend CommSendTransition; friend CommTestTransition; public: - CommWaitTransition(aid_t issuer, int times_considered, bool timeout_, uintptr_t comm_, aid_t sender_, aid_t receiver_, - unsigned mbox_, uintptr_t sbuff_, uintptr_t rbuff_, size_t size_); + CommWaitTransition(aid_t issuer, int times_considered, bool timeout_, unsigned comm_, aid_t sender_, aid_t receiver_, + unsigned mbox_); CommWaitTransition(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; bool get_timeout() const { return timeout_; } - /** Address of the corresponding Communication object in the application */ - uintptr_t get_comm() const { return comm_; } + /** ID of the corresponding Communication object in the application, or 0 if unknown */ + unsigned get_comm() const { return comm_; } /** Sender ID */ aid_t get_sender() const { return sender_; } /** Receiver ID */ aid_t get_receiver() const { return receiver_; } /** Mailbox ID */ unsigned get_mailbox() const { return mbox_; } - /** Sender buffer */ - uintptr_t get_sbuff() const { return sbuff_; } - /** Receiver buffer */ - uintptr_t get_rbuff() const { return rbuff_; } - /** data size */ - size_t get_size() const { return size_; } }; class CommTestTransition : public Transition { - uintptr_t comm_; + unsigned comm_; + unsigned mbox_; aid_t sender_; aid_t receiver_; - unsigned mbox_; - uintptr_t sbuff_; - uintptr_t rbuff_; - size_t size_; friend CommSendTransition; friend CommRecvTransition; public: - CommTestTransition(aid_t issuer, int times_considered, uintptr_t comm_, aid_t sender_, aid_t receiver_, - unsigned mbox_, uintptr_t sbuff_, uintptr_t rbuff_, size_t size_); + CommTestTransition(aid_t issuer, int times_considered, unsigned comm_, aid_t sender_, aid_t receiver_, + unsigned mbox_); CommTestTransition(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; - /** Address of the corresponding Communication object in the application */ - uintptr_t get_comm() const { return comm_; } + /** ID of the corresponding Communication object in the application, or 0 if unknown */ + unsigned get_comm() const { return comm_; } /** Sender ID */ aid_t get_sender() const { return sender_; } /** Receiver ID */ aid_t get_receiver() const { return receiver_; } /** Mailbox ID */ unsigned get_mailbox() const { return mbox_; } - /** Sender buffer */ - uintptr_t get_sbuff() const { return sbuff_; } - /** Receiver buffer */ - uintptr_t get_rbuff() const { return rbuff_; } - /** data size */ - size_t get_size() const { return size_; } }; class CommRecvTransition : public Transition { - uintptr_t comm_; /* Addr of the CommImpl */ + unsigned comm_; /* ID of the CommImpl or 0 if not known */ unsigned mbox_; - uintptr_t rbuff_; int tag_; public: - CommRecvTransition(aid_t issuer, int times_considered, uintptr_t comm_, unsigned mbox_, uintptr_t rbuff_, int tag_); + CommRecvTransition(aid_t issuer, int times_considered, unsigned comm_, unsigned mbox_, int tag_); CommRecvTransition(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; - /** Address of the corresponding Communication object in the application */ - uintptr_t get_comm() const { return comm_; } + /** ID of the corresponding Communication object in the application (or 0 if unknown)*/ + unsigned get_comm() const { return comm_; } /** Mailbox ID */ unsigned get_mailbox() const { return mbox_; } - /** Receiver buffer */ - uintptr_t get_rbuff() const { return rbuff_; } /** If using SMPI, the tag */ int get_tag() const { return tag_; } }; class CommSendTransition : public Transition { - uintptr_t comm_; /* Addr of the CommImpl */ + unsigned comm_; unsigned mbox_; - uintptr_t sbuff_; - size_t size_; int tag_; public: - CommSendTransition(aid_t issuer, int times_considered, uintptr_t comm_, unsigned mbox_, uintptr_t sbuff_, - size_t size_, int tag_); + CommSendTransition(aid_t issuer, int times_considered, unsigned comm_, unsigned mbox_, int tag_); CommSendTransition(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; - /** Address of the corresponding Communication object in the application */ - uintptr_t get_comm() const { return comm_; } + /** ID of the corresponding Communication object in the application, or 0 if unknown */ + unsigned get_comm() const { return comm_; } /** Mailbox ID */ unsigned get_mailbox() const { return mbox_; } - /** Sender buffer */ - uintptr_t get_sbuff() const { return sbuff_; } - /** data size */ - size_t get_size() const { return size_; } /** If using SMPI, the tag */ int get_tag() const { return tag_; } };