[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] sys_arch_mbox_fetch() implementation for FreeRTOS

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


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


Massimiliano Cialdi

Powersoft S.p.A.
Via E. Conti, 5 - Scandicci (Fi) 50018 - Italy
OFFICE:    +39 055 7350230


reply via email to

[Prev in Thread] Current Thread [Next in Thread]