Lockless patterns: an introduction to compare-and-swap
lwn.net