Skip to content

Commit 3687fe5

Browse files
committed
PacketQueue: Changed to always enforce overloaded check, better error messages.
1 parent 123af20 commit 3687fe5

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/inet/queueing/queue/PacketQueue.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,11 @@ void PacketQueue::pushPacket(Packet *packet, const cGate *gate)
9494
emit(packetPushStartedSignal, packet, &packetPushStartedDetails);
9595
EV_INFO << "Pushing packet" << EV_FIELD(packet) << EV_ENDL;
9696
queue.insert(packet);
97-
if (buffer != nullptr)
97+
if (buffer != nullptr) {
9898
buffer->addPacket(packet);
99+
if (isOverloaded())
100+
throw cRuntimeError("Queue is overloaded while using a packet buffer");
101+
}
99102
else if (packetDropperFunction != nullptr) {
100103
while (isOverloaded()) {
101104
auto packet = packetDropperFunction->selectPacket(this);
@@ -104,7 +107,8 @@ void PacketQueue::pushPacket(Packet *packet, const cGate *gate)
104107
dropPacket(packet, QUEUE_OVERFLOW);
105108
}
106109
}
107-
ASSERT(!isOverloaded());
110+
else if (isOverloaded())
111+
throw cRuntimeError("Queue is overloaded without a packet dropper");
108112
if (collector != nullptr && getNumPackets() != 0)
109113
collector.handleCanPullPacketChanged();
110114
cNamedObject packetPushEndedDetails("atomicOperationEnded");

0 commit comments

Comments
 (0)