Maxim, Thanks for this. I'll get this integrated and sorted out then, plus add some tests.
I also applied your fix for FreeBSD unix sockets. Do you have any other patches? Regards, Paul On Thu, Oct 04, 2007 at 03:24:04AM +0400, Maxim Dounin wrote: > Hello! > > On Wed, 3 Oct 2007, Paul Lindner wrote: > > >Okay, here's the changes I've committed to trunk: > [...] > > * Add append command support written by Filipe Laborde. > > Tests/protocol doc updates by Paul Lindner. > > Please note: commited append command support from Filipe is NOT atomic > since it obtains previous item data in process_update_command() - i.e. > before reading from network completes. Thus in theory one may change old > data before new data will be linked in complete_nread(). It's not > thread-safe as far as I see, too. > > Several days ago I've developed more correct append/prepend patch (with > the same syntax for append), it's available here: > > https://mdounin.ru/hg/memcached/rev/e28ab6bd21fa > > It's truly atomic and should be thread-safe since all actual work done in > do_store_item() (which is locked when memcached used with treads). It's a > bit more resource consuming though - since we can't be sure that nobody > changes old data before we finish reading - we have to do memcpy() for new > *and* old data. > > Coresponding perl api changes (trivial - just new append/prepend commands > mapped to generic _set()) available here: > > https://mdounin.ru/hg/Cache-Memcached/rev/f5cfb726ea65 > > Maxim Dounin -- Paul Lindner ||||| | | | | | | | | | [EMAIL PROTECTED]
pgpK2xhuSCobH.pgp
Description: PGP signature
