summaryrefslogtreecommitdiffstats
path: root/Lib/dumbdbm.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2003-07-13 17:21:10 (GMT)
committerTim Peters <tim.peters@gmail.com>2003-07-13 17:21:10 (GMT)
commit7a6c733c3b8ee131d7860ecb0877837e412c2959 (patch)
treee8b739adbbce23fcb1112d02d5580953d6f3b0a2 /Lib/dumbdbm.py
parent4a4296ec2926dd65fe4aeb4a177445606e19ffce (diff)
downloadcpython-7a6c733c3b8ee131d7860ecb0877837e412c2959.zip
cpython-7a6c733c3b8ee131d7860ecb0877837e412c2959.tar.gz
cpython-7a6c733c3b8ee131d7860ecb0877837e412c2959.tar.bz2
Make close() identical to __del__() for a dumbdbm database. Make
closing idempotent (it used to raise a nuisance exception on the 2nd close attempt). Bugfix candidate? Probably, but arguable.
Diffstat (limited to 'Lib/dumbdbm.py')
-rw-r--r--Lib/dumbdbm.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py
index 1475361..7b4ddb0 100644
--- a/Lib/dumbdbm.py
+++ b/Lib/dumbdbm.py
@@ -92,6 +92,9 @@ class _Database(UserDict.DictMixin):
# CAUTION: It's vital that _commit() succeed, and _commit() can
# be called from __del__(). Therefore we must never reference a
# global in this routine.
+ if self._index is None:
+ return # nothing to do
+
try:
self._os.unlink(self._bakfile)
except self._os.error:
@@ -204,12 +207,9 @@ class _Database(UserDict.DictMixin):
def close(self):
self._commit()
- self._index = None
- self._datfile = self._dirfile = self._bakfile = None
+ self._index = self._datfile = self._dirfile = self._bakfile = None
- def __del__(self):
- if self._index is not None:
- self._commit()
+ __del__ = close