aboutsummaryrefslogtreecommitdiff
path: root/lib/easy.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2007-05-31 11:34:32 +0000
committerDaniel Stenberg <daniel@haxx.se>2007-05-31 11:34:32 +0000
commit4c663ba9a8fbb9d58369e613230693b487b18d39 (patch)
treeeefada77f3df989013b628cf3bb52b965795f167 /lib/easy.c
parent713c9f8602caf53db2159b3db7d863f15174e987 (diff)
When transferring 500 downloads in parallel with a c-ares enabled build only
to find that it crashed miserably, and this was due to some select()isms left in the code. This was due to API restrictions in c-ares 1.3.x, but with the upcoming c-ares 1.4.0 this is no longer the case so now libcurl runs much better with c-ares and the multi interface with > 1024 file descriptors in use.
Diffstat (limited to 'lib/easy.c')
-rw-r--r--lib/easy.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/easy.c b/lib/easy.c
index 8f590c97b..d5816bc48 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -420,11 +420,14 @@ CURLcode curl_easy_perform(CURL *easy)
timeout.tv_sec = 1;
timeout.tv_usec = 0;
- /* get file descriptors from the transfers */
+ /* Old deprecated style: get file descriptors from the transfers */
curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
-
rc = Curl_select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+ /* The way is to extract the sockets and wait for them without using
+ select. This whole alternative version should probably rather use the
+ curl_multi_socket() approach. */
+
if(rc == -1)
/* select error */
break;