CFFI implicitly released the GIL by default when calling into libsamplerate, whereas pybind11 keeps the GIL by default. This change in 0.2.0+ leads to major GIL contention in a application where I was successfully getting thread-based parallelism before.
I don't have much experience with pybind11 but it seems {py::gil_scoped_release release; ...} blocks will be needed around calls to src_simple and others.
CFFI implicitly released the GIL by default when calling into libsamplerate, whereas pybind11 keeps the GIL by default. This change in 0.2.0+ leads to major GIL contention in a application where I was successfully getting thread-based parallelism before.
I don't have much experience with pybind11 but it seems
{py::gil_scoped_release release; ...}blocks will be needed around calls tosrc_simpleand others.