Currently, the uids file is only saved on closing of
the app, this means any messages retrived in a session
that crashes will be duplicated.
The reasoning behind this was that writing to the uids
file for every message retrieved would cause
unnecessary io. Plus, the uids file is re-written
entirely every time it's written. This was done to
avoid lugging around uids of messages no longer on the
server; uids filtering changes the uid list enough that
it was decided to just rewrite it out completely
everytime since it only happened on shutdown.
A possibility could be to read the uids of all messages
from the store (instead of the uids file), and just
store the uids of messages deleted locally but still on
the server.
It seems like the current uids scheme is a bit too
fragile, so if we can avoid depending on the seperate
uids file, we'd behave a little better.
Logged In: YES
user_id=697678
An obstacle to that solution is that VMime doesn't store the
uid of the message.