Buy commercial curl support from WolfSSL. 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
himself.
Re: Getting a list of easy handles in a multi handle - possible?
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Patrick Monnerat via curl-library <curl-library_at_lists.haxx.se>
Date: Mon, 28 Aug 2023 13:06:32 +0200
On 8/28/23 12:51, Stefan Eissing via curl-library wrote:
>
>> Am 28.08.2023 um 12:41 schrieb Daniel Stenberg <daniel_at_haxx.se>:
>>
>> On Mon, 28 Aug 2023, Stefan Eissing via curl-library wrote:
>>
>>>>>> CURL **handles = curl_multi_get_handles(multi);
>>> The tricky part is to handle iterations when easy handles are removed and freed during the iteration. If we save pointers, this can become tedious.
>> Right, but it has the nice property that it is a fixed snapshot in time. When you iterate over this list and remove handles or even add new handles to the multi, this list is already created and remains unmodified.
>>
>> Almost all other iterating APIs will be harder to document and possibly to use, when you remove and add handles while traversing the handles.
> Yes, that is why I propose a snapshot (internal, invisible) of the transfer ids. Then the caller can even free handles during iteration without headaches.
Internally managing a snapshot can also be a headhache and adds a
processing overhead that will be unused in most cases.
I think letting the array update to the caller's responsibility is much
simpler and does not bring much bloat to the calling program.
Date: Mon, 28 Aug 2023 13:06:32 +0200
On 8/28/23 12:51, Stefan Eissing via curl-library wrote:
>
>> Am 28.08.2023 um 12:41 schrieb Daniel Stenberg <daniel_at_haxx.se>:
>>
>> On Mon, 28 Aug 2023, Stefan Eissing via curl-library wrote:
>>
>>>>>> CURL **handles = curl_multi_get_handles(multi);
>>> The tricky part is to handle iterations when easy handles are removed and freed during the iteration. If we save pointers, this can become tedious.
>> Right, but it has the nice property that it is a fixed snapshot in time. When you iterate over this list and remove handles or even add new handles to the multi, this list is already created and remains unmodified.
>>
>> Almost all other iterating APIs will be harder to document and possibly to use, when you remove and add handles while traversing the handles.
> Yes, that is why I propose a snapshot (internal, invisible) of the transfer ids. Then the caller can even free handles during iteration without headaches.
Internally managing a snapshot can also be a headhache and adds a
processing overhead that will be unused in most cases.
I think letting the array update to the caller's responsibility is much
simpler and does not bring much bloat to the calling program.
-- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.htmlReceived on 2023-08-28