the synergy between non - blocking synchronization and operating system structure .
Locking without blocking: making lock based concurrent data structure algorithms nonblocking