When call mainthread.Terminate(), start finalizing written in mainthread/init.go and C.Py_Finalize() is called after releasing GIL state.
simple repro code
C.Py_Initialize()
C.PyEval_InitThreads()
// .. process is done and start finalizing ...
C.PyEval_ReleaseThread(C.PyGILState_GetThisThreadState())
C.Py_Finalize() // -> SIGSEGV
When call
mainthread.Terminate(), start finalizing written inmainthread/init.goandC.Py_Finalize()is called after releasing GIL state.py/mainthread/init.go
Line 38 in d9ae27c
simple repro code