Re: connect() to localhost non-blocking.

Doug McNaught (doug@wireboard.com)
21 Oct 2001 17:00:18 -0400


Patrick Mau <mau@oscar.prima.de> writes:

> I wrote a little test program to do some poll() benchmarks.
> I changed the host address to localhost and observed that
> connect() always returns EINPROGRESS when used with non-blocking
> sockets.
>
> >From the man page:
>
> EINPROGRESS
> The socket is non-blocking and the connection cannot be completed
> immediately. It is possible to select(2) or poll(2) for completion by
> selecting the socket for writing.
>
> So my question is:
>
> What is meant by 'cannot be completed immediately' ?
> I thought that connections to localhost would complete
> without any delay when the application listens ?

Probably the accept()ing process hasn't been scheduled yet.
EINPROGRESS is a perfectly reasonable response in such a case.

-Doug

-- 
Let us cross over the river, and rest under the shade of the trees.
   --T. J. Jackson, 1863
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/