curl_multi_cleanup() have no available parameter to add this so it would
require a new function or changing the ABI of libcurl. However
curl_multi_setopt() could perhaps have a new option added instead, say
CURLMOPT_FREE_EASY_ON_CLEANUP or similar?

/HH

Den tis 29 aug. 2023 kl 20:49 skrev Dmitry Karpov via curl-library <
curl-library@lists.haxx.se>:

> I think this discussion started from a pretty simple request to close and
> free easy handles that were previously added to a multi-handle
> because the curl_multi_cleanup() removes easy handles from the
> multi-handle but doesn't close them.
>
> This is snippet of the original message:
> "Basically we have to maintain our own shadow list of the easy handles
> that we have added to the multi.
> The only reason we need to do this is so that in case we close the plugin
> early, we can iterate over the easy handles which are still open and free
> them."
> ...
> Alternatively, could there be an operation which frees up the multi handle
> and any also frees the easy handles that it contains?
> (curl_multi_cleanup removes the easy handles from the multi, but doesn't
> free them.)"
>
> I should tell that I had to keep such lists of easy handles myself exactly
> for the same purpose.
>
> To help freeing easy handles when the multi-handle is cleaned up, I think
> it will be just enough to add a "clean_easy"
> parameter to the curl_multi_cleanup(), which will allow to clean up the
> easy handles along with the multi-handle in just one call.
>
> This will be an easy solution without any potential issues of changing
> multi-handle state from easy handle iterating callbacks or between easy
> handle iterator calls.
>
> Thanks,
> Dmitry Karpov
>
>
>
> -----Original Message-----
> From: curl-library <curl-library-boun...@lists.haxx.se> On Behalf Of
> Daniel Stenberg via curl-library
> Sent: Monday, August 28, 2023 3:27 PM
> To: Paul Fotheringham <fotheringham.p...@gmail.com>
> Cc: Daniel Stenberg <dan...@haxx.se>; libcurl development <
> curl-library@lists.haxx.se>
> Subject: [EXTERNAL] Re: Getting a list of easy handles in a multi handle -
> possible?
>
> On Mon, 28 Aug 2023, Paul Fotheringham wrote:
>
> > To my mind you only need to consider two things to make it safe:
> >
> > 1. Make a copy of the handle list initially to ensure handles added by
> > the callbacks don't get a callback invoked on them.
> > 2. After each callback finishes check that the next handle is still in
> > the multi's list to ensure we skip any handle removed by the
> > callbacks.
>
> Sure. Or we avoid the recursive callback and we don't complicate our lives
> more than we have to.
>
> In this case, all non-callbacks version we have discussed seem much easier
> to me. Both to provide as an API and to use as an application.
>
> --
>
>   / daniel.haxx.se
>   | Commercial curl support up to 24x7 is available!
>   | Private help, bug fixes, support, ports, new features
>   | https://curl.se/support.html
> --
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette:   https://curl.se/mail/etiquette.html
> --
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette:   https://curl.se/mail/etiquette.html
>
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to