From: Daniel Stenberg Date: Sat, 29 Oct 2011 20:33:44 GMT Subject: Re: [PATCH] http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping Message-ID: In-Reply-To: <1319901621-482-1-git-send-email-mika.fischer@zoopnet.de> On Sat, 29 Oct 2011, Mika Fischer wrote: > Previously, when nothing could be read from the connections curl had open, > git would just sleep unconditionally for 50ms. This patch changes this > behavior and instead obtains the recommended timeout and the actual file > descriptors from curl. This should eliminate time spent sleeping when data > could actually be read/written on the socket. It looks fine to me, from a libcurl perspective. I only have one comment about this: > + curl_multi_fdset(curlm, &readfds, &writefds, &excfds, &max_fd); > + > + select(max_fd+1, &readfds, &writefds, &excfds, &select_timeout); At times, curl_multi_fdset() might return -1 in max_fd, as when there's no internal socket around to provide to the application to wait for. Calling select() with max_fd+1 (== 0) will then not be appreciated by all implementations of select() so that case should probably also be covered by the 50ms sleep approach... -- / daniel.haxx.se