From 8e719e3ef5ad90b7f8ad9c82a853df1afb23afd7 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 18 Apr 2007 20:02:41 +0000 Subject: [PATCH] - Prevent the internal progress meter from updating more frequently than once per second. --- CHANGES | 4 ++++ RELEASE-NOTES | 3 +++ lib/progress.c | 11 +++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 8ca34603a..8b1c024c3 100644 --- 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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 1a6239a15..c70daa222 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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: diff --git a/lib/progress.c b/lib/progress.c index 9d9096069..ad09938f8 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -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; }