Petri Lehtinen <pe...@digip.org> added the comment: I looked at the source code of mutt to see how it rewrites mbox files. It does roughly this:
1. Block some signals. 2. Lock the mbox file (with dotlock, fcntl and flock). 3. Create a temporary file in /tmp. 4. Write messages to the temporary file, from the point where the first change is up to the end of the mbox file. This saves a lot of writing when the first change is near the end of the file. 5. Write changes from the temporary file to the mbox file, modifying the mbox file in-place. 6. Truncate the mbox file to the correct length. 7. Unblock signals. If writing the changes back to the mbox file fails, the temporary file is copied from /tmp to near the mbox file. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15122> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com