Buy commercial curl support. We
help you work out your issues, debug your libcurl applications, use the API,
port to new platforms, add new features and more. With a team lead by the
curl founder Daniel himself.
Questions about new multi-handle notifications
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Dmitry Karpov via curl-library <curl-library_at_lists.haxx.se>
Date: Wed, 5 Nov 2025 22:18:34 +0000
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
Date: Wed, 5 Nov 2025 22:18:34 +0000
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.htmlReceived on 2025-11-05