Linearizable Wait-Free Iteration Operations in Shared Double-Ended Queues
Journal article, 2017
Shared data object implementations that allow non-blocking concurrent operations are useful for in-memory data-processing, especially when they support consistent bulk operations like iterations. We propose an algorithmic implementation for concurrent iterators on shared double-ended queues (deques), building on and complementing a known lock-free deque implementation by M. Michael. The proposed construction is linearizable and wait-free. Moreover, it is read-only, so it does not execute expensive synchronization primitives and it does not interfere with update operations.