Lock-Free and Practical Doubly Linked List-Based Deques Using Single-Word Compare-and-Swap
Obstruction-free synchronization: double-ended queues as an example