[Top][All Lists]

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

Re: [lwip-users] Socket read/write and threads

From: Nicolas Pinault
Subject: Re: [lwip-users] Socket read/write and threads
Date: Tue, 12 Jan 2010 09:31:48 +0100
User-agent: Thunderbird (Windows/20090812)

Yoav Nissim a écrit :
Pardon me for barging in... I have encountered the same issue about a
week or two ago.
Using select() would be the natural choice for performing multiple
non-blocking operations.

You can either:
1. Use select() in a single thread to perform both Rx & Tx (recommended)
2. Keep Rx and Tx threads locked and waiting on a select running in
another thread (in essence adding the locking mechanism that lwIP does
not support)

As with a single thread my application still does not work correctly, I suspect there is a bug in my port.
I'd like to check some points :

I use a thread for MAC rx. This thread waits for MAC rx frames and calls ethernetif_input().
This thread has a lower priority than TCPIP_THREAD_PRIO. Is this ok ?

My current port implementation is simple and when transmitting, low_level_output() waits for the packet to be sent before returning (wait on a semaphore set by Tx interrupt). Is this ok ?

There is no mutex between tx and rx functions. That is, ethernetif_input() can be entered while low_level_output() is running and vice-versa.
Is this a problem ?

What must be the application thread priorities ? Higher priority than TCPIP_THREAD_PRIO ? Lower priority than TCPIP_THREAD_PRIO ?



On 11/01/10 9:46 AM, Nicolas Pinault wrote:
address@hidden a écrit :
Nicolas Pinault wrote:
Is this a threading problem ?
Yep, using a socket from more than one thread at the same time is
currently not supported.
So, what do you recommend to asynchronously send and receive data
(with a socket).


lwip-users mailing list

lwip-users mailing list



reply via email to

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