Vladislav Bogdanov wrote:
- (if not an immediate delete) copy messages to another folder
- mark original messages with \Deleted flag
- Expunge them
This is not an atomic operation, and if one polls folder state between second and third operations are run, (s)he will get list with messages marked for deletion too. And, original messages will be shown in a source folder if this happen between first and second operations. IMAP logs show following:
[cut]
Do anybody knows, how to avoid such asynchronous behavior when doing non-atomic IMAP operations?
We should just disable 'list' action on folder from which messages are deleted/moved until we receive a response from 'move_del' action. We should also add an operation progress indicator.