diff options
author | Daniel Stenberg <daniel@haxx.se> | 2007-05-31 11:34:32 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2007-05-31 11:34:32 +0000 |
commit | 4c663ba9a8fbb9d58369e613230693b487b18d39 (patch) | |
tree | eefada77f3df989013b628cf3bb52b965795f167 /lib/easy.c | |
parent | 713c9f8602caf53db2159b3db7d863f15174e987 (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.c | 7 |
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; |