- Prevent the internal progress meter from updating more frequently than once
authorDaniel Stenberg <daniel@haxx.se>
Wed, 18 Apr 2007 20:02:41 +0000 (20:02 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 18 Apr 2007 20:02:41 +0000 (20:02 +0000)
  per second.

CHANGES
RELEASE-NOTES
lib/progress.c

diff --git a/CHANGES b/CHANGES
index 8ca3460..8b1c024 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Daniel S (18 April 2007)
+- Prevent the internal progress meter from updating more frequently than once
+  per second.
+
 Dan F (17 April 2007)
 - Added test cases 296, 297 and 298 to test --ftp-method handling
 
index 1a6239a..c70daa2 100644 (file)
@@ -21,6 +21,7 @@ This release includes the following bugfixes:
    new host on the net with the same silly domain the test was using
    for a host which was supposed not to exist.
  o test suite SSL certificate works better with newer stunnel
+ o internal progress meter update frequency back to once per second
 
 This release includes the following known bugs:
 
@@ -29,6 +30,8 @@ This release includes the following known bugs:
 Other curl-related news:
 
  o PycURL 7.16.2 was released: http://pycurl.sf.net/
+ o TclCurl 7.16.2 was released:
+   http://personal1.iddeo.es/andresgarci/tclcurl/english/
 
 New curl mirrors:
 
index 9d90960..ad09938 100644 (file)
@@ -245,6 +245,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
   long ulestimate=0;
   long dlestimate=0;
   long total_estimate;
+  bool shownow=FALSE;
 
   now = Curl_tvnow(); /* what time is it */
 
@@ -266,6 +267,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
 
   /* Calculations done at most once a second, unless end is reached */
   if(data->progress.lastshow != (long)now.tv_sec) {
+    shownow = TRUE;
 
     data->progress.lastshow = now.tv_sec;
 
@@ -346,7 +348,12 @@ int Curl_pgrsUpdate(struct connectdata *conn)
       return result;
     }
 
-    /* If there's no external callback set, use internal code to show progress */
+    if(!shownow)
+      /* only show the internal progress meter once per second */
+      return 0;
+
+    /* If there's no external callback set, use internal code to show
+       progress */
 
     if(!(data->progress.flags & PGRS_HEADERS_OUT)) {
       if(data->reqdata.resume_from) {
@@ -422,7 +429,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
     /* we flush the output stream to make it appear as soon as possible */
     fflush(data->set.err);
 
-  }
+  } /* !(data->progress.flags & PGRS_HIDE) */
 
   return 0;
 }