-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
multi: unlink handles in pending or msgsent states #10762
Conversation
I'll also make a test to move completed handles over to a new list so that they can be skipped in the main loop as well. |
The pytest failures are very curious. I need to dig into those... |
@icing I could use a little hand-holding to learn the best way to debug these pytest failures. |
I'll checkout this branch and build locally in a few minutes. |
I see problems locally, from runs stalling for a second to busy loops. The CI failures look like busy loops where the started curl simply does not return. I have not pinned down the cause. But the order in which transfers are started is no longer the same as before. This stems from the fact that PENDING transfer are no longer processed at all. Simple example with 3 transfers:
I think the problem is that you modify if(data) {
do {
run_single(data); /* this may modify the list */
data = data->next;
} while(data);
} |
Ah yes indeed. |
b603aea
to
4dfe214
Compare
33ffafd
to
aa9dd6c
Compare
As they are not driving transfers or any socket activity, the main loop does not need to iterate over these handles. A performance improvement. They are instead only held in their own separate lists. Ref: #10743
aa9dd6c
to
a35aa68
Compare
@icing thanks for that hint, it seems that was the bug that held this back. |
Yep, works now locally here as well. |
As they are not driving transfers or any socket activity, the main loop does not need to iterate over these handles. A performance improvement. They are instead only held in their own separate lists. Assisted-by: Stefan Eissing Ref: curl#10743 Closes curl#10762
No description provided.