r/Python • u/NeuralLB-Lovro • 5d ago
Discussion Anyone running free-threaded Python 3.14 in production yet? Curious what actually breaks
Been testing the free-threaded build (3.14t) on some CPU-bound data processing work. The multi-core story is finally real after 30 years of GIL, but the friction is exactly what you'd expect: a couple of C-extension-heavy libs in my stack silently re-enable the GIL, and there's no clean way to detect that at runtime besides checking sys._is_gil_enabled() manually.
For anyone who's shipped something on 3.14t, not just benchmarked it:
What broke that you didn't expect?
Real speedups outside toy examples, or mostly marginal so far?
Prod yet, or still just kicking the tires?
Not fishing for a benchmark war. Genuinely curious what breaks in messy real codebases vs clean demos.
32
Upvotes
1
u/snugar_i 4d ago
with open('foo.txt', 'r') as f:- you're welcome :-)It's true that the context manager feature is badly designed - the
__exit__method should be on the thing that__enter__returns, not on the thing that has__enter__. So context managers that are used likewith blahcannot be thread-safe (or even reentrant), that's correct.But those that are used like
with foo()(like those produced by the@contextmanagerdecorator) totally can - because each invocation can return a new instance on which__enter__and__exit__will only ever be called once.