Yoav Nissim wrote:
> Simon,
> Is the half duplex limitation only a socket implementation issue? other
> than the missing locks, what else is missing? using the netconn API
> seems to result in the same problem.

Well, the problem really lies in the netconn API (and the sockets API is 
implemented by more or less directly using the netconn API).

> Isn't the TCPIP thread performing operations one at a time anyway?

It does (though not always). But the problem here is that both operations use 
the same 'finished' semaphore to know when the tcpip_thread has finished the 
operation:

1. Thread 1 calls read
2. Thread 2 calls write
3. tcpip_thread executes the read
4. tcpip_thread sets finished-semaphore for read
-> At this point, it's unpredictable which thread is woken (read or write) as 
both are pending on the same semaphore.

Plus, write operations may be splitted into multiple time slices if the send 
window or buffer space does not allow sending all data at a time.

Simon
-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01


_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to