I noticed that the 8.17.0 release now has multi-handle notifications enabled 
via the curl_multi_notify_enable() API,
and I have questions about the CURLMNOTIFY_INFO_READ and CURLMNOTIFY_EASY_DONE 
notifications
as I don't fully understand how to use them with curl_multi_perform().

As I understand, the purpose of CURLMNOTIFY_INFO_READ event is to allow to 
dispatch messages for completed transfers -
call curl_multi_info_read() and then check CURLMSG_DONE, which is typically 
done after calling curl_multi_perform().

I am wondering if this notification is called inside the curl_multi_perform(), 
so it allows to dispatch transfer messages as soon as they are put into the 
message queue
while curl_multi_perform() is running?
Or something else should be driving the multi-handle (not curl_multi_perform()) 
to trigger this notification?

I am also confused about the CURLMNOTIFY_EASY_DONE notification.
The documentation says: " this notification is triggered when an easy handle 
has finished ".

Isn't it kind of the same as CURLMNOTIFY_INFO_READ with CURLMSG_DONE handling 
or it has a totally different meaning?
Does it allow to skip calling curl_multi_info_read() with  CURLMSG_DONE or the 
client still needs to call it even if it subscribes to this notification?

If calling calling curl_multi_info_read() with  CURLMSG_DONE is still needed, 
then I think it is enough for client to use just the CURLMNOTIFY_INFO_READ with 
CURLMSG_DONE
to know when some particular easy transfer is done, and there is no need to use 
the CURLMNOTIFY_EASY_DONE notification. Or I am missing something?

It would be helpful to get some clarifications and explanations how these new 
cool features are expected to be used.

Thanks,
Dmitry Karpov

-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to