Where & how to deallocate resources in Python C extension

Mark Wooding mdw at distorted.org.uk
Wed Feb 4 21:49:23 CET 2009


fredbasset1000 at gmail.com writes:

> I've written a C extension, see code below, to provide a Python
> interface to a hardware watchdog timer.  As part of the initialization
> it makes some calls to mmap, I am wondering should I be making
> balanced calls to munmap in some kind of de-init function?

The kernel should remove the mapping when your process exits anyway --
otherwise the world would be left in an inconsistent state if your
process got killed by SIGKILL for example.

> Do Python extensions have d'tors?

No.  But you can cheat: stash some object whose tp_del slot does your
cleanup in your extension's module under some funny name.  (And woe
betide anyone who dels the funny name prematurely!)  I'm not sure I'd
bother.

-- [mdw]



More information about the Python-list mailing list