我有一些适合简单并行化的代码。但是,它使用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)