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
