#include #include #include struct PyLockGIL { PyLockGIL(): gstate(PyGILState_Ensure()) { std::cout << "construct GIL" << std::endl; } ~PyLockGIL() { PyGILState_Release(gstate); std::cout << "destruct GIL" << std::endl; } PyLockGIL(const PyLockGIL&) = delete; PyLockGIL& operator=(const PyLockGIL&) = delete; PyGILState_STATE gstate; };