{"author":"Stefan Eissing","author_email":"stefan@eissing.org","author_time":1753695446,"commit_time":1753736262,"committer":"Daniel Stenberg","committer_email":"daniel@haxx.se","hash":"85e18a5b9a60109d139e702c9c1028fa6ff4366e","message":"multi: process pending, one by one\n\nBefore curl 8.14.0, when pending was a list, `process_pending_handles()`\nmove a single transfer to processing. In 8.14.0 we changed that to move\nall pending transfers to processing. This lead to unwanted performance\ndrops as reported in #18017.\n\nRestore the old behaviour.\n\nWhile the old behviour is better, the overall handling of \"pending\"\ntransfers is not optimal, since we do not keep track of the \"condition\"\na pending transfer is waiting on. This means, when moving a single,\npending transfer, we might move one that still cannot be processed while\nanother that could is kept pending.\n\nSince we trigger `process_pending_handles()` from various changes, the\nstalled pending will eventually make it to the processing queue, but\nthis is not optimal.\n\nFixes #18017\nReported-by: rm-rmonaghan on github\nCloses #18056\n","parents":["9d2075bdce1234360bd41a9146ab9b465750a840"],"tree_hash":"fbee78144136b7212099db98a33b3db9a735a984"}