У меня есть некоторый код, который готов для простого распараллеливания. Тем не менее, он использует библиотеку C. Как определить функции в файлах pxd как nogil? Они чистые C, поэтому я не вижу проблемы ...
Это сообщение об ошибке, которое я получаю:
Error compiling Cython file:
------------------------------------------------------------
...
it = NULL
output[nfound] = indexes[i]
nfound += 1
i += 1
cn.free_interval_iterator(it_alloc)
^
------------------------------------------------------------
ncls/src/ncls.pyx:545:37: Calling gil-requiring function not allowed without gil
Это пример определений в моем файле pxd:
int free_interval_iterator(IntervalIterator *it)
IntervalIterator *reset_interval_iterator(IntervalIterator *it)
int find_intervals(IntervalIterator *it0,
int start,
int end,
IntervalMap im[],
int n,
SublistHeader subheader[],
int nlists,
IntervalMap buf[],
int nbuf,
int *p_nreturn,
IntervalIterator **it_return)