From: Daniel Stenberg Date: Fri, 26 Oct 2001 11:25:03 +0000 (+0000) Subject: made 'timespent' a double, which makes more accurate calculations for quick X-Git-Tag: curl-7_9_1~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=babb985f1a7155b01f0483a817db3b0c2437c588;p=thirdparty%2Fcurl.git made 'timespent' a double, which makes more accurate calculations for quick downloads --- diff --git a/lib/progress.c b/lib/progress.c index 571879b8a1..9e53f4b999 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -187,6 +187,7 @@ int Curl_pgrsUpdate(struct connectdata *conn) double total_transfer; double total_expected_transfer; + double timespent; struct SessionHandle *data = conn->data; @@ -224,17 +225,17 @@ int Curl_pgrsUpdate(struct connectdata *conn) now = Curl_tvnow(); /* what time is it */ /* The exact time spent so far (from the start) */ - data->progress.timespent = Curl_tvdiff (now, data->progress.start)/1000; + timespent = (double)Curl_tvdiff (now, data->progress.start)/1000; + + data->progress.timespent = (long)timespent; /* The average download speed this far */ data->progress.dlspeed = - data->progress.downloaded/(data->progress.timespent? - data->progress.timespent:1); + data->progress.downloaded/(timespent>0.01?timespent:1); /* The average upload speed this far */ data->progress.ulspeed = - data->progress.uploaded/(data->progress.timespent? - data->progress.timespent:1); + data->progress.uploaded/(timespent>0.01?timespent:1); if(data->progress.lastshow == Curl_tvlong(now)) return 0; /* never update this more than once a second if the end isn't @@ -281,8 +282,10 @@ int Curl_pgrsUpdate(struct connectdata *conn) data->progress.speeder[checkindex])/((double)span_ms/1000); } else - /* the first second we only have one speed information to use */ - data->progress.current_speed = data->progress.speeder[nowindex]; + /* the first second we use the main average */ + data->progress.current_speed = + (data->progress.ulspeed>data->progress.dlspeed)? + data->progress.ulspeed:data->progress.dlspeed; if(data->progress.flags & PGRS_HIDE) return 0;