[Python-checkins] r88407 - python/branches/py3k/Lib/mailbox.py
r.david.murray
python-checkins at python.org
Sat Feb 12 01:03:31 CET 2011
Author: r.david.murray
Date: Sat Feb 12 01:03:31 2011
New Revision: 88407
Log:
Fix #11116 fix on Windows (close file before removing in MH code)
Modified:
python/branches/py3k/Lib/mailbox.py
Modified: python/branches/py3k/Lib/mailbox.py
==============================================================================
--- python/branches/py3k/Lib/mailbox.py (original)
+++ python/branches/py3k/Lib/mailbox.py Sat Feb 12 01:03:31 2011
@@ -910,6 +910,7 @@
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)
@@ -917,6 +918,11 @@
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):
@@ -925,7 +931,8 @@
if self._locked:
_unlock_file(f)
finally:
- _sync_close(f)
+ if not closed:
+ _sync_close(f)
return new_key
def remove(self, key):
More information about the Python-checkins
mailing list