Есть ли надежный способ проверить, удерживает ли функция (не выпускает) GIL на протяжении всего ее выполнения? Если да, то что это за метод?
Например, я хочу определить, содержат ли GIL алгоритмы получения ключей из hashlib
? Я подумал, что могу использовать time.time()
, чтобы определить, удерживается ли GIL, проверяя, была ли разница между временем после запуска потока и временем до этого значительно большой. Но этот вариант зависит от личного суждения и не учитывает, были ли оба раза собраны до того, как интерпретатор решил выполнить рассматриваемую функцию.