[ECOS] TCP/IP 1.3.1 connect() never returns

Hugo Tyson hmt@redhat.com
Mon Oct 23 06:30:00 GMT 2000


AshCan@aol.com writes:
> Occasionally connect() does not return.  I cannot find
> where it got stuck as I continue to start and stop 
> my emulator hoping to be sitting at a yield or in some
> loop.  
> 
> My other threads,  cyg_netint thread and ethernet ISR 
> are still running.
> 
> If important, it is a SOCK_STREAM socket.
> 
> Has anyone had this problem and know how to avoid it?

There have been a couple of race conditions fixed in the select() code that
could leave netly stuff just hanging as you describe; available from
anoncvs.

There has also been a fix to make the network time (ktime) valid, and more
recently a fix to make that time start at 1S - because the routing code
"knows" that a time with a secs part of zero cannot possibly be valid  ;-)
So doing a connect within the first second of the kernel clock running
would just time out.  Also should be available from anoncvs.

Finding *just* these changes and applying to the net code that went along
with 131 might not be easy; a new kernel is required for some of the select
changes too.  Switch to using the whole anoncvs rather than 131?

	- Huge


More information about the Ecos-discuss mailing list