[Dovecot] 0.99.11-test6

Timo Sirainen tss at iki.fi
Mon Aug 25 07:15:07 EEST 2003


On Sunday, Aug 24, 2003, at 11:43 Europe/Helsinki, Timo Sirainen wrote:
> I just figured out that the lockless cache file reading prevents me 
> from fixing the mbox code to work the same way it used to. I'm not 
> sure actually how this would be best fixed.. Problem is that headers 
> in mails change and move the messages around in the mailbox, so I have 
> to keep track of them. Previously I just updated the header size in 
> index files.. but without read locks this can't be done safely.

Stupid stupid stupid.

Why did it take this long to figure out.

Write: lock(); data[0] = stuff; data[1] = stuff; unlock();
Read: do { copy = data; } while (copy[0] != copy[1]);

There's my lockless reading for data that changes. Solves mbox 
problems, allows easily changing .imap.index to be read-lockless and 
probably more. Doubles the space requirements, but that's still small.



More information about the dovecot mailing list