On Mon, 6 Dec 2010, David Woodhouse wrote:
It ends up in Curl_getaddrinfo() which calls init_resolve_thread() and
spawns a thread to go and look up the IP address to use.
curl_multi_socket_all() then returns zero.
The thread spawned by init_resolve_thread() then completes its task and
exits, but nobody ever tells us. So nothing happens to this connection until
later, when we try to make *another* request and finally call
curl_multi_socket_all() again.
It certainly sounds like a bug in that it doesn't set the timeout properly -
during the threaded resolver phase it should set a short timeout to
essentially cause a polling effect since there's no socket to wait for then.
I've not personally played around a lot with the threaded resolver and
especially not in combination with the multi interface, but we did a lot of
timeout fixes for the multi interface in the 7.21.2 release. It would be
really interesting to get to know if you still experience this problem with
that libcurl version.
--
/ daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html