Improve issue 7835 fix per MAL to handle the case that the

module dictionary has also been cleared.
This commit is contained in:
R. David Murray 2010-02-11 01:56:42 +00:00
parent 7c29f071d5
commit 031ae6e904

View file

@ -145,11 +145,12 @@ class Shelf(UserDict.DictMixin):
self.dict.close()
except AttributeError:
pass
# _ClosedDict can be None when close is called from __del__ during shutdown
if _ClosedDict is None:
self.dict = None
else:
# Catch errors that may happen when close is called from __del__
# because CPython is in interpreter shutdown.
try:
self.dict = _ClosedDict()
except (NameError, TypeError):
self.dict = None
def __del__(self):
if not hasattr(self, 'writeback'):