On Mon, 30 May 2011, Peppicelli, Daniel wrote:

- Unfortunately, we are using this old version because we have a product running on several platform (windows, Windows Intime Kernel and QNX). libcurl is embedded in the latest version of QNX. Unfortunately, the folks at QNX did not use the latest version but rather the 7.19.3. I'll ask them for a new version or I'll compile it myself just to try.

Right, it might be worth first just trying the latest version out to see if it makes anything better as if it does you probably can figure out the particular change in case you can't just update.

- I'm saying that it takes ~2.5 [s] to transfer a file of < 10k. Inside these two seconds, we "lose" 2 seconds inside the select() call in Curl_socket_ready() function. Those two seconds comes for two timeouts by the select() call

Ok, but the crucial question then becomes: why does select() "lose" this time?

select() is made to return immediately as there's anything to read (or write, depending on how it gets invoked) on the socket so why would libcurl call select() on a socket that can be used almost at once and then just sit there and timeout?

I did figure it out with this modified version of Curl_socket_ready()
in select.c:

I checked, but I can't find any changes done to select.c in a really long time (that seemed relevant to this).

I did write to this mailing list in order to know if some folks did encounter the same issue. If not, I'll try to go ahead in debugging and understanding the reason of the timeouts in select() calls.

I've not seen it myself and I've not seen anyone else report it before.

--

 / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to