Open
Description
Crash report
What happened?
Trying to iterate on a generator from multiple threads under the free-threaded build results in a segmentation fault.
Here is a minimal repro:
import concurrent.futures
def gen():
while True:
yield
it = gen()
with concurrent.futures.ThreadPoolExecutor() as executor:
while True:
_ = executor.submit(lambda: next(it))
The issue seems to be specific to generators as other kinds of iterators work well in parallel.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.14.0a0 experimental free-threading build (heads/main:c3b6dbff2c, Jun 10 2024, 16:54:16) [GCC 11.4.0]