mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-08 14:12:05 +00:00
Merge branch 'master' into Dont-be-assertive
This commit is contained in:
commit
d0f0305a72
@ -81,14 +81,17 @@ int32_t Router::runOnce()
|
|||||||
*/
|
*/
|
||||||
void Router::enqueueReceivedMessage(meshtastic_MeshPacket *p)
|
void Router::enqueueReceivedMessage(meshtastic_MeshPacket *p)
|
||||||
{
|
{
|
||||||
if (fromRadioQueue.enqueue(p, 0)) { // NOWAIT - fixme, if queue is full, delete older messages
|
// Try enqueue until successful
|
||||||
|
while (!fromRadioQueue.enqueue(p, 0)) {
|
||||||
// Nasty hack because our threading is primitive. interfaces shouldn't need to know about routers FIXME
|
meshtastic_MeshPacket *old_p;
|
||||||
setReceivedMessage();
|
old_p = fromRadioQueue.dequeuePtr(0); // Dequeue and discard the oldest packet
|
||||||
} else {
|
if (old_p) {
|
||||||
printPacket("BUG! fromRadioQueue is full! Discarding!", p);
|
printPacket("fromRadioQ full, drop oldest!", old_p);
|
||||||
packetPool.release(p);
|
packetPool.release(old_p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// Nasty hack because our threading is primitive. interfaces shouldn't need to know about routers FIXME
|
||||||
|
setReceivedMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generate a unique packet id
|
/// Generate a unique packet id
|
||||||
|
Loading…
Reference in New Issue
Block a user