On Fri, 21 Sep 2018, Vipin P R via curl-library wrote:
When I set the Max connections to 3, and enable HTTP/2 with the multi interface, I still see that all requests are being pipelined on the very first connection.
When libcurl is about to start a new transfer there are several factors involved that together are used to make the decision between an existing connection or start a new one. It will generally prioritise using an existing one if it (without delay) can, since that's typically the faster way and sort of a lot of the point with HTTP/2.
I have given number of connections as 3 and num of requests as 15.
"Maximum number of connections" doesn't mean that it will spread out over three automatically. It just means that it won't use more than 3.
I also add 15 easy handles to the HTTP/2 multi handle. But from my curl Verbose output, I can see that most of the requests are pipelined on a single connection. Am I missing something here. Please help !
That works exactly as intended. Except if you added all those handles at once without CURLOPT_PIPEWAIT set, as then it is likely to create more connections since then it deems creating a new connection is likely to be faster than waiting for another transfer's connection to get ready.
* Found bundle for host nghttp2.org: 0x16bbbd0 [serially] * Server doesn't support multi-use yet, wait
This implies CURLOPT_PIPEWAIT is set. You asked for it to wait for a connection!
-- / daniel.haxx.se ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html
