> With the notifications, you are told when there is a message to read. I think even without CURLMNOTIFY_INFO_READ notification, the application is told when to read messages - when curl_multi_perform() returns. It can accumulate more than one message if some transfers are completed almost simultaneously, but it should return as soon as there are messages for the client to process.
When I am reading what Stefan wrote before: ". An application using CURLMNOTIFY_INFO_READ no longer needs to explicitly call curl_multi_info_read() in its run loop. While curl_multi_info_read() is not that expensive to call, especially event based libcurl applications had to invoke it *a lot* when processing many transfers. Especially when these transfers use many connections, and therefore sockets. The savings scale with the number of socket poll events the application processes. While curl_multi_info_read() is not that expensive to call, especially event based libcurl applications had to invoke it *a lot* when processing many transfers. Especially when these transfers use many connections, and therefore sockets. The savings scale with the number of socket poll events the application processes." I assume (probably incorrectly) that using CURLMNOTIFY_INFO_READ somehow allows to minimize the number of curl_multi_info_read() calls, but if the CURLMNOTIFY_INFO_READ notification handler still needs to call curl_multi_info_read(), I don't see how it can do that because the client still needs to call curl_multi_info_read() equal to the number of completed transfers. But I can see that CURLMNOTIFY_INFO_READ notification can help to eliminate curl_multi_info_read() calls completely if libcurl consumes the messages automatically when it calls CURLMNOTIFY_INFO_READ notification handler. That would be a good optimization because the CURLMNOTIFY_INFO_READ notification essentially dispatches the transfer completion which client previously had to do by calling curl_multi_info_read(). So, I was thinking that maybe Stefan was talking about such optimization when he stated that the application "no longer needs to explicitly call curl_multi_info_read() in its run loop" and wanted to clarify that. Thanks, Dmitry -----Original Message----- From: Daniel Stenberg <[email protected]> Sent: Saturday, November 8, 2025 1:40 AM To: Dmitry Karpov via curl-library <[email protected]> Cc: Stefan Eissing <[email protected]>; Dmitry Karpov <[email protected]> Subject: [EXTERNAL] Re: Questions about new multi-handle notifications On Fri, 7 Nov 2025, Dmitry Karpov via curl-library wrote: > But if this is the case, then the number of curl_multi_info_read() > calls will be essentially the same as when using > curl_multi_info_read() in the run loop because all the messages must > be consumed explicitly regardless of whether CURLMNOTIFY_INFO_READ > notification is used or not. Without the notifications, you have to poll for messages. -- / daniel.haxx.se || https://rock-solid.curl.dev -- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html
