模块卸载/" atexit"

时间:2016-12-09 10:38:15

标签: python c cython

在我的代码中,我想暂时将一些值存储在全局数组中,直到模块被卸载。一些函数可能会改变数组的大小,所以我认为我可以使用malloc的ed数组。

但是,我不确定如何释放它们。

我的代码看起来像这样:

cdef double* someStaticArray = [1., 1757.84036]
cdef double* someDynamicArray = <double*> malloc(someSize*sizeof(double)) # this array might be re-malloc'ed in fun



cdef int fun(double* data) nogil:
    # do something with data and arrays above
    ...
    return

如果你熟悉FFT,那么我很有趣&#34;类似于FFT(它是一个整数变换),我想存储最新的&#34;有趣的&#34;呼吁在下一个可能的重复使用&#34; fun&#34;呼叫。我从fftw库中得到了这个想法,如果我需要FFT,我会使用它。

我的主要问题主要是何时以及如何释放&#34; someDynamicArray&#34;如上例所示。我无法真正使用python对象或类似对象,但我很欣赏有关如何以不同方式解决此问题的建议。

编辑:我正在寻找一种合理的方式来做某事&#34; atexit&#34;在cython中。

干杯

0 个答案:

没有答案