Why is PyGILState_Release throwing Fatal Python Errors
ANSWERED Ok, I solved this issue. Its all in how you initialize the thread state. You don't need to use ReleaseLock at all. Simply add InitThreads call to your module definition: BOOST_PYTHON_MODULE(ModuleName) { PyEval_InitThreads(); ... } Ok, I have attempted to diagnose this problem for hours and poured through what seems like every example on the web. Getting tired now so I may be missing something obvious but here is what is happening: I am wrapping a library in boost python. I am running a python script which imports the lib, constructs some objects and then receives callbacks from c++