On Fri, 27 Sep 2019, Denis Chapligin via curl-library wrote:
//Here goes the main loop curl_multi_perform(multi_handle, &running_handles); while(running_handles>0){ curl_multi_wait(multi_handle) while(curl_multi_info_read(multi_handle) { if(CURLMSG_DONE) { //success curl_multi_remove_handle(multi_handle, easy_handle); curl_easy_cleanup(easy_handle); } else { //Failure, need to retry curl_multi_remove_handle(multi_handle, easy_handle); curl_easy_cleanup(easy_handle); auto easy_handle = curl_easy_init(); curl_multi_add_handle(multi_handle, easy_handle); curl_easy_setopt(m_handle, CURLOPT_URL, "http://www.example.org"); } curl_multi_perform(multi_handle, &running_handles); }
Not sure if this is what happens for you, but if in this case the newly added transfers fails really early, the first curl_multi_perform() call with the new transfer will get a zero back in running_handles and this loop will stop.
-- / daniel.haxx.se | Get the best commercial curl support there is - from me | Private help, bug fixes, support, ports, new features | https://www.wolfssl.com/contact/ ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html