On Wed, 2003-12-31 at 12:15, Richard Bang wrote: > Client A connects and does a long fetch of all the flags (takes say 20s) > Client B connects and does a store 1:* /deleted followed by expunge > meanwhile Client C connect and does a store 1:* /seen
IMHO, the ideal (not required) behaviour for IMAP commands is to work like they would in a transactional database. Each command in itself is a transaction followed by a commit. So Client A would see the mailbox state exactly as it was when the fetch began. With B+C you don't say if you mean STORE FLAGS or STORE +FLAGS. With STORE FLAGS case it depends on if EXPUNGE or STORE FLAGS \Seen is executed first. With STORE +FLAGS case it's not really clear either, the server might be updating \Deleted and \Seen flags concurrently and there could be some race conditions with that (eg. UW-IMAP with mbx format I think).
signature.asc
Description: This is a digitally signed message part
