>> Before
>> curl_multi_remove_handle(_multi, task->getCurl());
>> 
>> But I believe curl should take care on cancelling active easy handler 
>> somewhere inside curl_multi_remove_handle. May be I’m wrong.
> 
> Have you figured out exactly which function in libcurl that waits if you 
> don't 
> do this?


   frame #3: 0x00000001036a65a4 
GalileoPro`Curl_resolver_wait_resolv(conn=0x000000010b84c208, 
entry=0x0000000000000000) at asyn-ares.c:395
   frame #4: 0x00000001036894c4 GalileoPro`multi_done(connp=0x0000000109823818, 
status=CURLE_OK, premature=true) at multi.c:541

As you may see in backtrace in original message. Curl_resolver_wait_resolv is 
called inside multi_done. Curl_resolver_wait_resolv computes timeout value and 
sets it to default 1 second if it’s bigger. If small (1) timeout is set prior 
to curl_multi_remove_handle, then waitperform called with 0 timeout and returns 
instantly without 1 second delay.

WBR,
Evgen Bodunov.
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to