Спасибо за вашу помощь!
Да, вы правы, есть несколько тем C. Никогда не думал, что мне понадобится мьютекс для самого интерпретатора - для меня GIL является совершенно новой концепцией (и даже ни разу не упомянутой во всем уроке).
После прочтения ссылки (наверняка, не самая простая ее часть, хотя функции PyGILState_ * все сильно упрощают), я добавил
void initPython(){
PyEval_InitThreads();
Py_Initialize();
PyEval_ReleaseLock();
}
функция для правильной инициализации переводчика.
Каждый поток создает свою структуру данных, получает блокировку и впоследствии снимает ее, как показано в ссылке.
Работает как надо, но при вызове Py_Finalize () перед завершением процесса я получаю segfault ... есть ли проблемы с его просто оставить?