aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2013-07-14 17:33:24 +0200
committerDaniel Stenberg <daniel@haxx.se>2013-07-19 23:27:17 +0200
commitd529f3882b9bca2c3eb32295dd6b2609d0c9b51f (patch)
tree36f705876abfddbc77f6d6b89a3cf070bd1fed30
parente2e92486a740e9a5b984ae9ff8c74e9d50dd35d7 (diff)
curl_easy_perform: gradually increase the delay time
Instead of going 50,100,150 etc millisecond delay time when nothing has been found to do or wait for, we now start lower and double each loop as in 4,8,16,32 etc. This lowers the minimum wait without sacrifizing the longer wait too much with unnecessary CPU cycles burnt. Bug: http://curl.haxx.se/mail/lib-2013-07/0103.html Reported-by: Andreas Malzahn
-rw-r--r--lib/easy.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/easy.c b/lib/easy.c
index 995328e1d..d84ecf541 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -539,9 +539,7 @@ CURLcode curl_easy_perform(CURL *easy)
if(curlx_tvdiff(after, before) <= 10) {
without_fds++;
if(without_fds > 2) {
- int sleep_ms = without_fds * 50;
- if(sleep_ms > 1000)
- sleep_ms = 1000;
+ int sleep_ms = without_fds < 10 ? (1 << (without_fds-1)): 1000;
Curl_wait_ms(sleep_ms);
}
}