> > Can you please clarify where/when I should call PyEval_InitThreads()? Is > > this in the main python thread before any pthread callbacks are generated? > > If so, should this be done only once? > Do it in your module init. That function is safe to be called multiple time. >
I decided to do it in the extension module shared library initialization routine. It's guaranteed to be called when the shared library is loaded. > You could have answered the second part by reading the docs, which is what I > did to check what I was telling you. > My apologies. I realized that I should have read the manual first, but only after the impulse reaction to send the response. > Personally I do not code against the C api I use PyCXX to ease a lot of the > hardship of using the C api. See > http://cxx.sourceforge.net/PyCXX-Python3.html > Disclaimer I am the PyCXX maintainer. > > I have c++ classes to handle the Gil release and acquire that I use in pysvn > that you might find useful. > > See http://cxx.sourceforge.net/PyCXX-Python3.html and the > PythonAllowThreads PythonDisallowThreads classes that to the hard workin a > type safe way. > Thank you for that reference. I do not write a lot of python extension modules. However, when I do it again, I will seriously consider this as an option. -- https://mail.python.org/mailman/listinfo/python-list