[Cython] module cleanup
Stefan Behnel
stefan_ml at behnel.de
Tue Feb 24 14:36:51 CET 2009
Hi,
Robert Bradshaw wrote:
> That is what the cleanup functions do--they try and release the
> memory in use by the module. The problem is that it isn't easy to
> tell when a module is still in use (as far as I can tell). It sounds
> like things have improved with Py3's unloading of modules.
This would be a Py3-only feature. The cleanup code for Py2 would still be
optional.
> A concrete example might help explain things. Say I have a Cython class
>
> class A:
> def __del__(self):
> print 1
>
> Now when this is compiled, a python int 1 will be created and stored
> in the module dictionary. If the module defining A is cleaned up
> before every instance of A is deallocated, then the cached Python 1
> will be collected and then at some later point A.__del__ could be
> called, which may result in a segfault.
Ok, but all this means is that the class needs to hold a reference to the
module instance that created it, right?
Stefan
More information about the Cython-dev
mailing list