Hi,

I have successfully integrated lwIP version 1.2.0 in a PowerPC microcontroller 
running SMX RTOS
thanks to the support I have gotten from lwIP community. I am now trying to 
implement non-blocking socket operation for
connect() and write(). For accept() and read() the socket is now non-blocking 
since I use select().
 I am aware that there is such a thread previously, however it ends with no 
clear result. 

I am wondering why do we have to block write() from the first place? 

And as for connect(), I am planing to implement the following changes:

1. in netconn_connect(), if the O_NONBLOCK flag is set, then use 
sys_arch_mbox_try_fetch() and return EINPROGRESS. Then set the netconn state
to NETCONN_CONNECT. Any subsequent connect checks the NETCONN_CONNECT state and 
returns EALREADY

2. Use the callback function to set the sendevent to plus in the do_connected().

3. Select() after connection is established will then return a non-zero nready 
for the writeset.
 The application then call sys_arch_mbox_tryfetch, free the message, reset the 
send event to zero and can now begin writing/reading to the socket.

Is there any changes or conflicts I should be aware of if i do implement these 
changes ?

I am thankful for any advices you guys could offer,


_________________________________________________________________
Need to know the score, the latest news, or you need your HotmailĀ®-get your 
"fix".
http://www.msnmobilefix.com/Default.aspx
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to