From 7e7a3dba5fd4262269f713dfe21ba7e4746fc2dd Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Fri, 10 Apr 2015 13:24:41 +0300 Subject: 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. --- Lib/dbm/dumb.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Lib/dbm/dumb.py') diff --git a/Lib/dbm/dumb.py b/Lib/dbm/dumb.py index a9ead68ce4..63bc329421 100644 --- a/Lib/dbm/dumb.py +++ b/Lib/dbm/dumb.py @@ -248,8 +248,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 -- cgit v1.2.1