47c47
< m_DelayedTicks(0)
---
> m_DelayedTicks(0), m_msg_counter(0)
53c53,54
< m_DelayedTicks(other.m_DelayedTicks)
---
> m_DelayedTicks(other.m_DelayedTicks),
> m_msg_counter(other.m_msg_counter)
71d71
< //{ fatal("Read functional access not implemented!"); }
73d72
< //{ fatal("Write functional access not implemented!"); }
88c87,88
< void setTime(const Tick& new_time) { m_time = new_time; }
---
> void setMsgCounter(uint64_t c) { m_msg_counter = c; }
> uint64_t getMsgCounter() const { return m_msg_counter; }
91c91
< Tick m_time;
---
> const Tick m_time;
93a94
> uint64_t m_msg_counter; // FIXME, should this be a 64-bit value?
95a97,109
> inline bool
> operator>(const MsgPtr &lhs, const MsgPtr &rhs)
> {
> const Message *l = lhs.get();
> const Message *r = rhs.get();
>
> if (l->getLastEnqueueTime() == r->getLastEnqueueTime()) {
> assert(l->getMsgCounter() != r->getMsgCounter());
> return l->getMsgCounter() > r->getMsgCounter();
> }
> return l->getLastEnqueueTime() > r->getLastEnqueueTime();
> }
>