Предположим, у меня есть функция расширения на C, которая делает что-то, полностью независимое от интерпретатора Python. Есть ли причины не выпускать GIL?
Например, есть ли причины не писать такой код (помимо таких проблем, как читабельность и избегание микрооптимизации - вещи важные, но не совсем относящиеся к моему вопросу)?
Py_BEGIN_ALLOW_THREADS
a = 1 + 1;
Py_END_ALLOW_THREADS
Очевидно, что это тривиальный код, где производительность, вероятно, не будет иметь большого значения. Но есть ли какая-нибудь причина не выпускать GIL здесь? Или GIL следует выпускать только для более CPU-интенсивного кода?