[Spambayes] locking pickle/dbm against concurrent access?
anthony at interlink.com.au
Tue Jan 21 10:33:46 EST 2003
>>> Skip Montanaro wrote
> Depending on how training and classifying are accomplished, it's quite
> possible that the two activities will be done in different processes. For
> example, I am currently experimenting with training using pop3proxy (well,
> still my offshoot proxytrainer at the moment) while classification is being
> done by hammiefilter run from procmail. This implies a need to lock the
> shelve/pickle file used to store the training info. Seems to me we need to
> (be able to) lock the shelve/pickle file. The only lock facility which
> seems cross-platform enough for this application is the set of flags used by
> os.open(). To lock the database you'd have to check/create a lock file
> related (namewise) to the actual database file. Has anyone given this any
I'd suggest, instead, that training write to a different filename, then,
when it's complete, rename the new file to the existing file. Real operating
systems will do the right thing - I don't know if Windows will just choke
and die, tho....
Anthony Baxter <anthony at interlink.com.au>
It's never too late to have a happy childhood.
More information about the Spambayes