Issue 3667: Reloading an extension module always leaks (original) (raw)
With python2.6, reloading extension modules does not always leak memory:
Python 2.6b2+ (trunk, Aug 19 2008, 23:45:24) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import sys [34467 refs] import audioop; del sys.modules['audioop'] [34677 refs] import audioop; del sys.modules['audioop'] [34677 refs]
But with 3.0, reloading audioop leaks 60 references every time (seen in test_unittest):
Python 3.0b3+ (py3k, Aug 24 2008, 21:56:40) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import sys [42018 refs] import audioop; del sys.modules['audioop'] [42257 refs] import audioop; del sys.modules['audioop'] [42317 refs] import audioop; del sys.modules['audioop'] [42377 refs] import audioop; del sys.modules['audioop'] [42437 refs] import audioop; del sys.modules['audioop'] [42497 refs]
OK, many things cannot be reinitialized for C-written modules (static variables &co), this is not the case for audioop. Furthermore, I thought that the new module API was to support proper cleanup of modules