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

Reply via email to