Fix #11116 fix on Windows (close file before removing in MH code)

This commit is contained in:
R. David Murray 2011-02-12 00:03:31 +00:00
parent fc14114ca9
commit 774a66deda
1 changed files with 8 additions and 1 deletions

View File

@ -910,6 +910,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)
@ -917,6 +918,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):
@ -925,7 +931,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):