From: Matt Hurd (matt.hurd_at_[hidden])
Date: 2005-04-27 19:01:28
> > Matt Hurd wrote:
> >> Peter Dimov <pdimov_at_[hidden]> wrote:
> >> The canonical definition of "lock free" is that the system as a
> >> whole always makes progress. An ordinary lock-based algorithm does
> >> not have this property; if the thread that obtained the lock
> >> suddenly dies, no other thread can move past that lock.
> > Thanks for clearing up the definition. Though I do find it confusing
> > as I've seen people call stuff lock-free where the approach uses
> > versioning and retry semantics based on an optimistic concurrency
> > approach.
> This can still be lock-free; even though a particular thread is not
> guaranteed to make progress, _some_ thread is.
> When every thread is guaranteed to make progress in a finite number of steps
> the algorithm is called "wait-free".
Thanks for the further explanation Peter.
Do you want a reference for Alexander's unidirectional approach to the
memory model? I'm imagining it is a load / store / full fence
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk