On Thu, 2 Apr 2009, Sergii Volchkov wrote:
So, in my opinion, using curl share can be used as a workaround for the
described issue, without a need to use synchronous DNS lookup or a-res.
However, this approach cannot be considered a permanent solution for
libcurl, since CURLSHOPT_SHARE/CURL_LOCK_DATA_DNS states: "Note that when
you use the multi interface, all easy handles added to the same multi handle
will share DNS cache by default without this having to be used!"
Thanks for your research on this topic.
I would say that it indicates a race condition in the multi-threaded resolver
that makes it do bad things unless there's a mutex added and used to prevent
the double access to the same structs.
This fix won't be done by me, I'm not a windows guy.
--
/ daniel.haxx.se