Nathan Goldbaum
Nathan Goldbaum
No, that PR is still in-flight: https://github.com/numpy/numpy/pull/26780
Probably worth noting that this includes the commits from https://github.com/protocolbuffers/protobuf/pull/22736. @nascheme maybe you should clarify what the maintainers should do with that PR, given that this has diverged a little...
> I don't know if this is possible under No-GIL Python, maybe @ngoldbaum has more ideas about this kind of scenario? Yes, in free-threaded python when the GIL is disabled...
Right, C-level code will need to use C-level locking primitives.
I think having some kind of support for generating pickle protocol boilerplate makes sense (via a macro?). There are obviously types where that's not possible so pyclass can't always do...
I actually have [a branch](https://github.com/ngoldbaum/pyo3/tree/critical-section-bindings) with these changes (more or less) that I was planning to do separately from that PR. Unfortunately the deadlock I found is caused by something...
I opened https://github.com/PyO3/pyo3/pull/4477 with a different implementation of the FFI bindings.
ouch that does seem to be a big perf hit
I wonder if the critical section API is actually problematic in practice. You could try iterating over the same dict in many threads on the free-threaded build as a stress...
Barring a deprecation cycle, another way to head off the footgun is to explain it in the [the docs for the option](https://pip.pypa.io/en/latest/cli/pip_install/#cmdoption-no-build-isolation).