It runs out that if a MemObject turns around and does a send in its
receive callback, and there are other sends already scheduled, then
it could observe a state where it's not at the head of the list but
the bus's sendEvent is not scheduled (because we're still in the
middle of processing the prior sendEvent).
return;
}
- // list is non-empty and this is not the head, so event should
- // already be scheduled
- assert(waitingOnRetry ||
- (sendEvent->scheduled() && sendEvent->when() <= when));
-
// list is non-empty & this belongs at the end
if (when >= transmitList.back().tick) {
transmitList.push_back(DeferredPacket(when, pkt));