From 1cadd2b2aa2720a07c33a9257f3ee85a4b58523e Mon Sep 17 00:00:00 2001 From: cpq Date: Wed, 7 Jan 2026 05:53:55 +0000 Subject: [PATCH] Fetch multiple frames from the queue --- mongoose.c | 4 ++-- src/net_builtin.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mongoose.c b/mongoose.c index 77f59b23..b2b911bf 100644 --- a/mongoose.c +++ b/mongoose.c @@ -6648,8 +6648,8 @@ static void mg_tcpip_poll(struct mg_tcpip_if *ifp, uint64_t now) { } } else { // Complex poll / Interrupt-based driver. Queues recvd frames char *buf; - size_t len = mg_queue_next(&ifp->recv_queue, &buf); - if (len > 0) { + size_t len; + while ((len = mg_queue_next(&ifp->recv_queue, &buf)) > 0) { mg_tcpip_rx(ifp, buf, len); mg_queue_del(&ifp->recv_queue, len); } diff --git a/src/net_builtin.c b/src/net_builtin.c index 33586608..08f8b7b7 100644 --- a/src/net_builtin.c +++ b/src/net_builtin.c @@ -1827,8 +1827,8 @@ static void mg_tcpip_poll(struct mg_tcpip_if *ifp, uint64_t now) { } } else { // Complex poll / Interrupt-based driver. Queues recvd frames char *buf; - size_t len = mg_queue_next(&ifp->recv_queue, &buf); - if (len > 0) { + size_t len; + while ((len = mg_queue_next(&ifp->recv_queue, &buf)) > 0) { mg_tcpip_rx(ifp, buf, len); mg_queue_del(&ifp->recv_queue, len); }