diff options
author | 2015-04-10 13:29:28 +0300 | |
---|---|---|
committer | 2015-04-10 13:29:28 +0300 | |
commit | 2116b12da59f77358cc539b90f58a3cdea43c2fd (patch) | |
tree | 693d26652b1dbf8b2ac058c5725f9726c3d14a0b /Lib/dbm | |
parent | Null merge (diff) | |
parent | Issue #23865: close() methods in multiple modules now are idempotent and more (diff) | |
download | cpython-2116b12da59f77358cc539b90f58a3cdea43c2fd.tar.gz cpython-2116b12da59f77358cc539b90f58a3cdea43c2fd.tar.bz2 cpython-2116b12da59f77358cc539b90f58a3cdea43c2fd.zip |
Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
Diffstat (limited to 'Lib/dbm')
-rw-r--r-- | Lib/dbm/dumb.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/dbm/dumb.py b/Lib/dbm/dumb.py index 34240968e72..7777a7cae67 100644 --- a/Lib/dbm/dumb.py +++ b/Lib/dbm/dumb.py @@ -258,8 +258,10 @@ class _Database(collections.MutableMapping): raise error('DBM object has already been closed') from None def close(self): - self._commit() - self._index = self._datfile = self._dirfile = self._bakfile = None + try: + self._commit() + finally: + self._index = self._datfile = self._dirfile = self._bakfile = None __del__ = close |