Hi,
There is better than lock-free algorithm, this is wait-free.
A lock-free algorithm guarantees progress regardless of whether some
processes are delayed or even killed and regardless of scheduling
policies. By definition, a lock-free object must be immune to deadlock
and livelock.
A wait-free algorithm guarantees that ALL processes will progress and
FINISH in a finite number of steps.
Wait-Free Reference Counting and Memory Management
http://www.cs.chalmers.se/~phs/TechnicalReports/Sun04_WaitFreeRef.pdf
There are many other paper at
http://www.cs.chalmers.se/~phs/
Cordialement,
Jean-Gérard Pailloncy