diff options
author | R. David Murray <rdmurray@bitdance.com> | 2011-02-12 02:03:56 +0000 |
---|---|---|
committer | R. David Murray <rdmurray@bitdance.com> | 2011-02-12 02:03:56 +0000 |
commit | f9e342321ac1dcd8b3a27171356b9c14948d581e (patch) | |
tree | 92d5d2d2b30bce6fd0a17e8992d6f995e60ad031 /Lib/mailbox.py | |
parent | 008c0448bdcef20ed0670cae6d4b72d54a8faffa (diff) | |
download | cpython-git-f9e342321ac1dcd8b3a27171356b9c14948d581e.tar.gz |
Merged revisions 88407 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r88407 | r.david.murray | 2011-02-11 19:03:31 -0500 (Fri, 11 Feb 2011) | 2 lines
Fix #11116 fix on Windows (close file before removing in MH code)
........
Diffstat (limited to 'Lib/mailbox.py')
-rw-r--r-- | Lib/mailbox.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py index 5f54ea1312..728ce2ad69 100644 --- a/Lib/mailbox.py +++ b/Lib/mailbox.py @@ -876,6 +876,7 @@ class MH(Mailbox): new_key = max(keys) + 1 new_path = os.path.join(self._path, str(new_key)) f = _create_carefully(new_path) + closed = False try: if self._locked: _lock_file(f) @@ -883,6 +884,11 @@ class MH(Mailbox): try: self._dump_message(message, f) except BaseException: + # Unlock and close so it can be deleted on Windows + if self._locked: + _unlock_file(f) + _sync_close(f) + closed = True os.remove(new_path) raise if isinstance(message, MHMessage): @@ -891,7 +897,8 @@ class MH(Mailbox): if self._locked: _unlock_file(f) finally: - _sync_close(f) + if not closed: + _sync_close(f) return new_key def remove(self, key): |