]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-115999: Add free-threaded specialization for FOR_ITER (#128798)
authorT. Wouters <thomas@python.org>
Wed, 12 Mar 2025 15:21:46 +0000 (16:21 +0100)
committerGitHub <noreply@github.com>
Wed, 12 Mar 2025 15:21:46 +0000 (16:21 +0100)
commitde2f7da77d9e8dc6758430249e7179d37b3fee44
tree13a20c58828b74a4851373476635382fc4aba797
parentdb27aee2fe253855fc57b118658f4f4718819382
gh-115999: Add free-threaded specialization for FOR_ITER (#128798)

Add free-threaded versions of existing specialization for FOR_ITER (list, tuples, fast range iterators and generators), without significantly affecting their thread-safety. (Iterating over shared lists/tuples/ranges should be fine like before. Reusing iterators between threads is not fine, like before. Sharing generators between threads is a recipe for significant crashes, like before.)
13 files changed:
Include/internal/pycore_list.h
Include/internal/pycore_opcode_metadata.h
Include/internal/pycore_uop_ids.h
Include/internal/pycore_uop_metadata.h
Lib/test/test_opcache.py
Objects/listobject.c
Python/bytecodes.c
Python/executor_cases.c.h
Python/generated_cases.c.h
Python/optimizer.c
Python/optimizer_cases.c.h
Python/specialize.c
Tools/cases_generator/analyzer.py