mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-13 17:00:19 +00:00
Limit queue fetches
This commit is contained in:
1 parent
1cadd2b2aa
commit
b313d697ff
2 files changed
+6
-6
No files matched your search
+3
-3
@@ -4836,7 +4836,7 @@ void mg_multicast_restore(struct mg_connection *c, uint8_t *from) {
|
|||||||
#define MG_TCPIP_FIN_MS 1000 // Timeout for closing connection
|
#define MG_TCPIP_FIN_MS 1000 // Timeout for closing connection
|
||||||
|
|
||||||
#ifndef MG_TCPIP_WIN
|
#ifndef MG_TCPIP_WIN
|
||||||
#define MG_TCPIP_WIN 6000 // TCP window size
|
#define MG_TCPIP_WIN 6000 // TCP window size
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct connstate {
|
struct connstate {
|
||||||
@@ -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
|
} else { // Complex poll / Interrupt-based driver. Queues recvd frames
|
||||||
char *buf;
|
char *buf;
|
||||||
size_t len;
|
size_t len, cnt = 7; // Max 7 packets to fetch
|
||||||
while ((len = mg_queue_next(&ifp->recv_queue, &buf)) > 0) {
|
while (cnt-- > 0 && (len = mg_queue_next(&ifp->recv_queue, &buf)) > 0) {
|
||||||
mg_tcpip_rx(ifp, buf, len);
|
mg_tcpip_rx(ifp, buf, len);
|
||||||
mg_queue_del(&ifp->recv_queue, len);
|
mg_queue_del(&ifp->recv_queue, len);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,7 @@
|
|||||||
#define MG_TCPIP_FIN_MS 1000 // Timeout for closing connection
|
#define MG_TCPIP_FIN_MS 1000 // Timeout for closing connection
|
||||||
|
|
||||||
#ifndef MG_TCPIP_WIN
|
#ifndef MG_TCPIP_WIN
|
||||||
#define MG_TCPIP_WIN 6000 // TCP window size
|
#define MG_TCPIP_WIN 6000 // TCP window size
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct connstate {
|
struct connstate {
|
||||||
@@ -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
|
} else { // Complex poll / Interrupt-based driver. Queues recvd frames
|
||||||
char *buf;
|
char *buf;
|
||||||
size_t len;
|
size_t len, cnt = 7; // Max 7 packets to fetch
|
||||||
while ((len = mg_queue_next(&ifp->recv_queue, &buf)) > 0) {
|
while (cnt-- > 0 && (len = mg_queue_next(&ifp->recv_queue, &buf)) > 0) {
|
||||||
mg_tcpip_rx(ifp, buf, len);
|
mg_tcpip_rx(ifp, buf, len);
|
||||||
mg_queue_del(&ifp->recv_queue, len);
|
mg_queue_del(&ifp->recv_queue, len);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user