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() self.dict.close()
except AttributeError: except AttributeError:
pass pass
# _ClosedDict can be None when close is called from __del__ during shutdown # Catch errors that may happen when close is called from __del__
if _ClosedDict is None: # because CPython is in interpreter shutdown.
self.dict = None try:
else:
self.dict = _ClosedDict() self.dict = _ClosedDict()
except (NameError, TypeError):
self.dict = None
def __del__(self): def __del__(self):
if not hasattr(self, 'writeback'): if not hasattr(self, 'writeback'):