Async I/O and threads are two different things, and either can be present in real code without the other.
I have ran a lot of programs containing race conditions successfully many times until I ran into an issue.
At any rate, test_asyncio contains a lot of tests that involve threads and specifically thread safety between coroutines and those tests fail. As far as async I/O and threads being distinct, I mean sure that is true of a lot of features but people mix features together and mixing asyncio with threads will not work with this particular release.
> small threaded programs had been run successfully
The second obviously contradicts the first, doesn't it?
> mixing asyncio with threads will not work with this particular release.
That's a very different claim to the first, and one that no longer conflicts with the second, isn't it?
> When we found out about the “nogil” fork of Python it took a single person less than half a working day to adjust the codebase to use this fork and the results were astonishing. Now we can focus on data acquisition system development rather than fine-tuning data exchange algorithms.
Read PEP-703 (https://peps.python.org/pep-0703/#performance) where the performance hit is currently 5-8%
If you only care about single thread there's all kinds of stuff you can do.
You're not supposed to drive a car that hasn't got out of the research and development laboratory either, so there's that.
EDIT:
> [the test synchronous programs] all seem to run fine, and very basic threaded programs work, sometimes
Perhaps this is closer to removing the oil pan
Only as long at it’s as easy to put back in