[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-users] tcpip thread gets stuck when socket is closed
From: |
Stefan Lankes |
Subject: |
Re: [lwip-users] tcpip thread gets stuck when socket is closed |
Date: |
Sat, 17 Sep 2011 15:51:46 +0200 |
>
> On 15 Sep 2011, at 15:43, Stefan Lankes wrote:
>
>> we use LwIP 1.4.0 as TCP/IP stack for an internal OS project. We have
>> already tested some applications, which used the LwIP's Socket API - they
>> work fine. However, if the applications close the socket, the tcpip thread
>> gets stuck and isn't able to handle incoming messages. To analyze this
>> behavior, we defined the macro LWIP_TCPIP_THREAD_ALIVE to print some
>> messages periodically on the screen. This stops by closing the socket.
>>
>> Do you have any idea, why the Socket API doesn't work correctly?
>
> You've probably violated lwIP's threading constraints and corrupted some
> internal state such that the tcpip thread gets stuck in a loop. If you can
> describe all the different threads you have and how they interface to lwIP
> that would probably reveal the problem.
>
> Kieran
I read that the some users has similar problems. Most of these users violated
the LwIP's threading constraints. Therefore, I created only one thread which
realized a simple socket-based server. Like the Unix port, the tcpip thread
initialized in its callback the NICs. Beside these threads, my system has also
an idle thread and an initd thread, which creates my server example and
terminates.
On a real machine, the tcpip thread stucks when the socket is closed. I tested
my code also on qemu. By closing a socket, I got the assertion "men_free: legal
memory failed at line 320 in lwip/src/core/mem.c".
Any idea?
Stefan