ratelimits: use minimal burst rate
No binary (build failed)
—
(log yok)
| @@ -141,12 +141,14 @@ static void rlimit_tune_steps(struct Curl_rlimit *r, | |
| r->step_us = CURL_US_PER_SEC + ((timediff_t)mstep_inc * 1000); | |
| r->rate_per_step += rate_inc; | |
| r->tokens = r->rate_per_step; | |
| + | if(r->burst_per_step) { |
| + | curl_off_t burst_inc = ((r->burst_per_step * mstep_inc) / 1000); |
| + | if(burst_inc) |
| + | r->burst_per_step += burst_inc; |
| + | } |
| } | |
| } | |
| } | |
| - | |
| - | if(r->burst_per_step) |
| - | r->burst_per_step = r->rate_per_step; |
| } | |
| void Curl_rlimit_init(struct Curl_rlimit *r, | |
| @@ -2768,7 +2768,9 @@ static CURLcode setopt_offt(struct Curl_easy *data, CURLoption option, | |
| if(offt < 0) | |
| return CURLE_BAD_FUNCTION_ARGUMENT; | |
| s->max_send_speed = offt; | |
| - | Curl_rlimit_init(&data->progress.ul.rlimit, offt, offt, |
| + | /* use minimal burst rate of 32k. some protocol batch IO */ |
| + | Curl_rlimit_init(&data->progress.ul.rlimit, offt, |
| + | CURLMAX(offt, (32 * 1024)), |
| Curl_pgrs_now(data)); | |
| break; | |
| case CURLOPT_MAX_RECV_SPEED_LARGE: | |
| @@ -2779,7 +2781,9 @@ static CURLcode setopt_offt(struct Curl_easy *data, CURLoption option, | |
| if(offt < 0) | |
| return CURLE_BAD_FUNCTION_ARGUMENT; | |
| s->max_recv_speed = offt; | |
| - | Curl_rlimit_init(&data->progress.dl.rlimit, offt, offt, |
| + | /* use minimal burst rate of 32k. some protocol batch IO */ |
| + | Curl_rlimit_init(&data->progress.dl.rlimit, offt, |
| + | CURLMAX(offt, (32 * 1024)), |
| Curl_pgrs_now(data)); | |
| break; | |
| case CURLOPT_RESUME_FROM_LARGE: | |