Skip to content

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

Closed
bagder wants to merge 1 commit into
masterfrom
bagder/multi-process
Closed

bagder wants to merge 1 commit into
masterfrom
bagder/multi-process

Conversation

@bagder

@bagder bagder commented Aug 9, 2024 •

Copy link
Copy Markdown
Member

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