Dans pybind11-wrapped c++, appelé à partir de python, je peux faire ceci :
py::array_t<double> t1 = py::array_t<double>(3);
Mais si je fais cela dans un thread séparé, il se plante avec une erreur de segmentation (en fait, il semble se planter quand t1 sort de la portée ou est détruit).
Je peux résoudre ce problème en procédant comme suit
PyGILState_STATE gstate;
gstate = PyGILState_Ensure();
pybind11::array_t<double> t1 = pybind11::array_t<double>(3)
PyGILState_Release(gstate);
Il est donc évident qu'il y a des choses qui dépendent de la GIL dans pybind11::array_t. Est-ce nécessairement le cas ? Dois-je acquérir la GIL pour l'instancier ?