Uh oh!
There was an error while loading. Please reload this page.
gh-123471: Make concurrent iteration over itertools.permutations and itertools.combinations_with_replacement thread-safe - #144402
Conversation
Uh oh!
There was an error while loading. Please reload this page.
colesbury
left a comment
There was a problem hiding this comment.
Overall, looks good to me. I left a comment about the test above.
Would you please also add a news entry?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Thanks @eendebakpt for the PR, and @colesbury for merging it 🌮🎉.. I'm working now to backport this PR to: 3.14. |
Sorry, @eendebakpt and @colesbury, I could not cleanly backport this to |
colesbury
commented
Feb 4, 2026
Hmmm... are we backporting these sorts of PRs to 3.14 or no? It looks like some of the other ones are 3.15 only. |
…ns` and `itertools.combinations_with_replacement` thread-safe (pythongh-144402)
…ns` and `itertools.combinations_with_replacement` thread-safe (pythongh-144402)
…ns` and `itertools.combinations_with_replacement` thread-safe (pythongh-144402)
StanFromIreland
commented
May 2, 2026
Can we remove the backport label? |
serhiy-storchaka
commented
Jul 15, 2026
Please don't forget about backports. |
…132814) (GH-135689) (GH-144402) (GH-146033) (GH-142957) (GH-153791) Combined backport of PRs from main branch, fixing free-threading data-races in itertools: * gh-123471: make concurrent iteration over `itertools.cycle` safe under free-threading (gh-131212) * gh-123471: Make itertools.product and itertools.combinations thread-safe (GH-132814) * gh-123471: Make itertools.chain thread-safe (gh-135689) * gh-123471: Make concurrent iteration over `itertools.permutations` and `itertools.combinations_with_replacement` thread-safe (gh-144402) * gh-123471: make concurrent iteration over itertools.accumulate thread-safe (gh-144486) * gh-123471: Make `itertools.zip_longest` safe in the FT build (gh-146033) (cherry picked from commit 26a1cd4) (cherry picked from commit 847d1c2) (cherry picked from commit 0533c1f) (cherry picked from commit 009c8c0) (cherry picked from commit 3a24856) (cherry picked from commit 9214e3f) Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com> Co-authored-by: Kumar Aditya <kumaraditya@python.org>
We use a critical section similar to the approach in #132814.