[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