]> granicus.if.org Git - python/commit
Rewritten PyImport_Cleanup() and its helper, clear_carefully(). They
authorGuido van Rossum <guido@python.org>
Mon, 19 Jan 1998 21:58:26 +0000 (21:58 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 19 Jan 1998 21:58:26 +0000 (21:58 +0000)
commit758eec01728e41bce41ccc31ae96a856a4de6abc
treeecaa09debf7f8f683dae54fd4ad19df087429790
parent8095ebfc4a4ca613e294db8e512908c7a54e4ac9
Rewritten PyImport_Cleanup() and its helper, clear_carefully().  They
now implement the following finalization strategy.

1. Whenever this code deletes a module, its directory is cleared
   carefully, as follows:
   - set all names to None that begin with exactly one underscore
   - set all names to None that don't begin with two underscores
   - clear the directory

2. Modules are deleted in the following order:
   - modules with a reference count of 1, except __builtin__ or __sys__
   - repeat until no more are found with a reference count of 1
   - __main__ if it's still there
   - all remaining modules except __builtin__ or sys
   - sys
   _ __builtin__
Python/import.c