diff options
author | Tim Peters <tim.peters@gmail.com> | 2003-07-13 17:21:10 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2003-07-13 17:21:10 (GMT) |
commit | 7a6c733c3b8ee131d7860ecb0877837e412c2959 (patch) | |
tree | e8b739adbbce23fcb1112d02d5580953d6f3b0a2 /Lib/dumbdbm.py | |
parent | 4a4296ec2926dd65fe4aeb4a177445606e19ffce (diff) | |
download | cpython-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.py | 10 |
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 |