@@ -65,13 +65,6 @@ pub struct Config {
65
65
// library to limit the number of in-flight requests separately, _before_ the
66
66
// requests are given to curl.
67
67
pub max_concurrent_requests : Option < usize > ,
68
-
69
- // Limit the number of concurrent requests for a "batch" of requests passed at once to
70
- // client.send_async(). This allows us to have a high global request limit for small
71
- // "random" requests, while having lower limits for heavy requests (e.g. fetch 10m
72
- // files across 1000 requests).
73
- pub max_concurrent_requests_per_batch : Option < usize > ,
74
-
75
68
// Escape hatch to turn off our request limiting.
76
69
pub limit_requests : bool ,
77
70
// Escape hatch to turn off our response body limiting.
@@ -102,7 +95,6 @@ impl Default for Config {
102
95
client_info : None ,
103
96
disable_tls_verification : false ,
104
97
max_concurrent_requests : None , // No limit by default
105
- max_concurrent_requests_per_batch : None ,
106
98
limit_requests : true ,
107
99
limit_response_buffering : true ,
108
100
unix_socket_domains : HashSet :: new ( ) ,
@@ -253,37 +245,23 @@ impl HttpClient {
253
245
/// until all of the transfers are complete, and will return
254
246
/// the total stats across all transfers when complete.
255
247
pub fn stream ( & self , requests : Vec < StreamRequest > ) -> Result < Stats , HttpClientError > {
256
- // This is a "local" limit for how many concurrent requests we allow for a single
257
- // batch of requests. Requests are still subject to the global limit via self.claimer.
258
- let mut allowed_requests = self
259
- . config
260
- . max_concurrent_requests_per_batch
261
- . unwrap_or ( requests. len ( ) ) ;
262
-
263
248
// Add as many of remaining requests to the handle as we can, limited by the claimer.
264
- let try_add = |h : & MultiDriver ,
265
- reqs : & mut IntoIter < StreamRequest > ,
266
- allowed_requests : & mut usize |
267
- -> Result < ( ) , HttpClientError > {
268
- for claim in self
269
- . claimer
270
- . try_claim_requests ( ( * allowed_requests) . min ( reqs. len ( ) ) )
271
- {
272
- let mut request = match reqs. next ( ) {
273
- Some ( request) => request,
274
- // Shouldn't happen, but just in case.
275
- None => break ,
276
- } ;
277
-
278
- self . event_listeners
279
- . trigger_new_request ( request. request . ctx_mut ( ) ) ;
280
- h. add ( request. into_easy ( claim) ?) ?;
281
-
282
- * allowed_requests -= 1 ;
283
- }
249
+ let try_add =
250
+ |h : & MultiDriver , reqs : & mut IntoIter < StreamRequest > | -> Result < ( ) , HttpClientError > {
251
+ for claim in self . claimer . try_claim_requests ( reqs. len ( ) ) {
252
+ let mut request = match reqs. next ( ) {
253
+ Some ( request) => request,
254
+ // Shouldn't happen, but just in case.
255
+ None => break ,
256
+ } ;
257
+
258
+ self . event_listeners
259
+ . trigger_new_request ( request. request . ctx_mut ( ) ) ;
260
+ h. add ( request. into_easy ( claim) ?) ?;
261
+ }
284
262
285
- Ok ( ( ) )
286
- } ;
263
+ Ok ( ( ) )
264
+ } ;
287
265
288
266
let mut requests = requests. into_iter ( ) ;
289
267
let mut stats = Stats :: default ( ) ;
@@ -298,7 +276,7 @@ impl HttpClient {
298
276
let driver = MultiDriver :: new ( multi. get ( ) , self . config . verbose_stats ) ;
299
277
300
278
// Add requests to the driver. This can add anywhere from zero to all the requests.
301
- try_add ( & driver, & mut requests, & mut allowed_requests ) ?;
279
+ try_add ( & driver, & mut requests) ?;
302
280
303
281
let mut tls_error = false ;
304
282
let result = driver
@@ -312,17 +290,14 @@ impl HttpClient {
312
290
313
291
self . report_result_and_drop_receiver ( res) ?;
314
292
315
- allowed_requests += 1 ;
316
-
317
293
// A request finished - let's see if there are pending requests we can now add
318
294
// to this multi. This allows pending requests to proceed without needing to
319
295
// wait for _all_ in-progress requests to finish. Note that there may be other
320
296
// curl multis active bound by the same request limit, so it is still possible
321
297
// for our pending requests to wait longer than they need to (i.e. when a
322
298
// request finishes on a different multi, our loop here will still wait for one
323
299
// of our requests to finish before trying to enqueue new requests).
324
- try_add ( & driver, & mut requests, & mut allowed_requests)
325
- . map_err ( |err| Abort :: WithReason ( err. into ( ) ) )
300
+ try_add ( & driver, & mut requests) . map_err ( |err| Abort :: WithReason ( err. into ( ) ) )
326
301
} )
327
302
. inspect ( |stats| {
328
303
self . event_listeners . trigger_stats ( stats) ;
0 commit comments