Massimiliano Cialdi
|
From: | massimiliano cialdi |
Subject: | [lwip-users] sys_arch_mbox_fetch() implementation for FreeRTOS |
Date: | Mon, 20 Jun 2022 11:22:21 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 |
hello,
I am using lwip 2.1.3 and contrib 2.1.0.
in the ports/freertos/sys_arch.c file there is the
sys_arch_mbox_fetch() function, in which there is the timeout_ms
parameter.
Given the name I expect the sys_arch_mbox_fetch() function to be
blocking for a maximum time corresponding to timeout_ms
milliseconds.
I see this piece of code, though:
if (!timeout_ms) {
/* wait infinite */
ret = xQueueReceive(mbox->mbx, &(*msg),
portMAX_DELAY);
LWIP_ASSERT("mbox fetch failed", ret == pdTRUE);
} else {
I wonder why I should wait infinitely if I set the timeout to 0
(so I want it non-blocking)? is this a bug?
In fact, it happens to me occasionally (I have yet
to figure out the conditions) that even though I have the
timeout set to 0, re-read with lwip_getsockopt(SO_RCVTIMEO), the
task blocks indefinitely while waiting for a message in the
queue.
best regards
Max
[Prev in Thread] | Current Thread | [Next in Thread] |