been chasing a problem in LWIP (based on 1.1.0) which while not
strictly a bug was causing me issues. The problem is related to the
interface between sys_mbox_fetch( ) and sys_arch_mbox_fetch( ).
is required to return the time in milliseconds that it waited for a
message, the returned value is then used to reduce the sys_timeout on
the next call.
a fast interface (100 MHz), the stack was getting messages for received
IP frames faster than one per millisecond. My implimentation in
sys_arch_mbox_fetch was returning zero (i.e less than 1 ms) on a large
number of the calls, and hence the timeout value was not getting
decremented and timeout activity was not occurring.
simplistic fix was to return a minimum value of one in
sys_arch_mailbox_fetch, however this then has the side effect of
reducing the timeouts.
better solution would be to increase the returned resolution, but this
would then require a change to the sys_timeout structure to add a
member for the parts of a millisec, or go through the entire code base
changing all the timeout values to the higher resolution.
lwip-users mailing list