cURL / Mailing Lists / curl-users / Single Mail

curl-users

[PATCHv2 1/2] progress bar: always update when at 100%

From: Tobias Markus <tobias_at_markus-regensburg.de>
Date: Mon, 06 Jan 2014 20:32:33 +0100

Currently, the progress bar is updated at 5Hz. Because it is often not
updated to 100% when the download is finished and curl exits, the bar
is often "stuck" at 90-something, thus irritating the user.

This patch fixes this by always updating the progress bar (instead of
waiting for 200ms to have elapsed) while the download is finished but
curl has not yet exited. This should not greatly affect performance
because that moment is rather short.

Signed-off-by: Tobias Markus <tobias_at_markus-regensburg.de>

---
 src/tool_cb_prg.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c
index 00078d0..3c97614 100644
--- a/src/tool_cb_prg.c
+++ b/src/tool_cb_prg.c
@@ -55,16 +55,17 @@ int tool_progress_cb(void *clientp,
   curl_off_t total;
   curl_off_t point;
-  if(bar->calls && (tvdiff(now, bar->prevtime) < 200L))
-    /* after first call, limit progress-bar updating to 5 Hz */
-    return 0;
-
   /* expected transfer size */
   total = dltotal + ultotal + bar->initial_size;
    /* we've come this far */
   point = dlnow + ulnow + bar->initial_size;
+  if(bar->calls && (tvdiff(now, bar->prevtime) < 200L) && point < total)
+    /* after first call, limit progress-bar updating to 5 Hz */
+    /* update when we're at 100% even if last update is less than 200ms
ago */
+    return 0;
+
   if(point > total)
     /* we have got more than the expected total! */
     total = point;
-- 
1.8.5.2
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-users
FAQ:        http://curl.haxx.se/docs/faq.html
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2014-01-06