]> granicus.if.org Git - curl/commitdiff
threaded resolver: no more expire 0 calls
authorDaniel Stenberg <daniel@haxx.se>
Wed, 1 Sep 2010 14:47:42 +0000 (16:47 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 1 Sep 2010 14:47:42 +0000 (16:47 +0200)
Curl_expire() set to 0 expires ALL timeouts so it should only be called
if we truly and really want to remove all timeouts for the handle.

lib/hostthre.c

index 8a5f67a1748c1f240d2e6d48f962e4b79f078405..e8dfa5400486610b61911b69f5c6334f6a45e685 100644 (file)
@@ -419,8 +419,6 @@ CURLcode Curl_is_resolved(struct connectdata *conn,
 
   if (done) {
     getaddrinfo_complete(conn);
-    if (td->poll_interval != 0)
-        Curl_expire(conn->data, 0);
     Curl_destroy_thread_data(&conn->async);
 
     if(!conn->async.dns) {
@@ -431,29 +429,21 @@ CURLcode Curl_is_resolved(struct connectdata *conn,
     *entry = conn->async.dns;
   } else {
     /* poll for name lookup done with exponential backoff up to 250ms */
-    int elapsed;
-
-    elapsed = Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle);
-    if (elapsed < 0) {
+    int elapsed = Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle);
+    if (elapsed < 0)
       elapsed = 0;
-    }
 
-    if (td->poll_interval == 0) {
+    if (td->poll_interval == 0)
       /* Start at 1ms poll interval */
       td->poll_interval = 1;
-    } else if (elapsed >= td->interval_end) {
+    else if (elapsed >= td->interval_end)
       /* Back-off exponentially if last interval expired  */
       td->poll_interval *= 2;
-    }
 
     if (td->poll_interval > 250)
       td->poll_interval = 250;
 
     td->interval_end = elapsed + td->poll_interval;
-
-    /* Reset old timer so we can set a new one further in the future */
-    Curl_expire(conn->data, 0);
-
     Curl_expire(conn->data, td->poll_interval);
   }