> > 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

Reply via email to