summaryrefslogtreecommitdiffstats
path: root/Lib/dbm
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-04-10 10:29:28 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2015-04-10 10:29:28 (GMT)
commit2116b12da59f77358cc539b90f58a3cdea43c2fd (patch)
tree693d26652b1dbf8b2ac058c5725f9726c3d14a0b /Lib/dbm
parentfcbf8f3e3d46eb023dd9a3954c6f9ed9a533d427 (diff)
parent7e7a3dba5fd4262269f713dfe21ba7e4746fc2dd (diff)
downloadcpython-2116b12da59f77358cc539b90f58a3cdea43c2fd.zip
cpython-2116b12da59f77358cc539b90f58a3cdea43c2fd.tar.gz
cpython-2116b12da59f77358cc539b90f58a3cdea43c2fd.tar.bz2
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.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/dbm/dumb.py b/Lib/dbm/dumb.py
index 3424096..7777a7c 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