89c89
< // until next cycle, but enqueue operations effect the visible
---
> // until schd cycle, but enqueue operations effect the visible
237c237
< // adjusted until next cycle
---
> // adjusted until schd cycle
278c278
< MessageBuffer::reanalyzeList(list<MsgPtr> &lt, Tick nextTick)
---
> MessageBuffer::reanalyzeList(list<MsgPtr> &lt, Tick schdTick)
283c283
< m->setLastEnqueueTime(nextTick);
---
> m->setLastEnqueueTime(schdTick);
290c290
< m_consumer->scheduleEventAbsolute(nextTick);
---
> m_consumer->scheduleEventAbsolute(schdTick);
300c300
< Tick nextTick = m_receiver->clockEdge(Cycles(1));
---
> Tick curTick = m_receiver->clockEdge();
304c304,306
< // prio heap
---
> // prio heap. The reanalyzeList call will make sure the consumer is
> // scheduled for the current cycle so that the previously stalled messages
> // will be observed before any younger messages that may arrive this cycle
306c308
< reanalyzeList(m_stall_msg_map[addr], nextTick);
---
> reanalyzeList(m_stall_msg_map[addr], curTick);
314c316
< Tick nextTick = m_receiver->clockEdge(Cycles(1));
---
> Tick curTick = m_receiver->clockEdge();
318c320,322
< // prio heap
---
> // prio heap. The reanalyzeList call will make sure the consumer is
> // scheduled for the current cycle so that the previously stalled messages
> // will be observed before any younger messages that may arrive this cycle.
322c326
< reanalyzeList(map_iter->second, nextTick);
---
> reanalyzeList(map_iter->second, curTick);