Skip to content

multi: make the "general" list of easy handles a Curl_llist #14474

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

bagder
Copy link
Member

@bagder bagder commented Aug 9, 2024

Instead of having an especially "unique" linked list handler for the main list of easy handles within the multi handle, this now uses a regular Curl_llist for this as well.

With this change, it is clearer that every easy handle added to a multi handle belongs to one and only one out of three different lists:

process - the general one for normal transfer processing

pending - queued up waiting to get a connection (MSTATE_PENDING)

msgsent - transfer completed (MSTATE_MSGSENT)

@bagder bagder added the tidy-up label Aug 9, 2024
Instead of having an especially "unique" linked list handler for the
main list of easy handles within the multi handle, this now uses a
regular Curl_llist for this as well.

With this change, it is also clearer that every easy handle added to a
multi handle belongs to one and only one out of three different lists:

 process - the general one for normal transfer processing

 pending - queued up waiting to get a connection (MSTATE_PENDING)

 msgsent - transfer completed (MSTATE_MSGSENT)

An easy handle must therefore be removed from the current list before it
gets added to another.

Closes #14474
@bagder bagder force-pushed the bagder/multi-process branch from 809d4a0 to ec125b8 Compare August 9, 2024 22:02
@bagder bagder closed this in 2c15ee4 Aug 10, 2024
@bagder bagder deleted the bagder/multi-process branch August 10, 2024 21:25
Aearsis added a commit to Aearsis/curl that referenced this pull request May 5, 2025
The split of lists for easy handles introduced in curl#14474 introduced a bug that
not all handles were returned from `curl_multi_get_handles`, skipping the ones
residing in pending and msgsent lists. This commit fixes it - maybe
simplistically, but it works and is similar to `curl_multi_get_handle`.

Closes #TODO
Aearsis added a commit to Aearsis/curl that referenced this pull request May 5, 2025
The split of lists for easy handles introduced in curl#14474 introduced a bug that
not all handles were returned from `curl_multi_get_handles`, skipping the ones
residing in pending and msgsent lists. This commit fixes it - maybe
simplistically, but it works and is similar to `curl_multi_get_handle`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

1 participant