A two-enqueuer queue

The question of whether all shared objects with consensus number 2 belong to Common2, the class of objects that can be implemented from two-process consensus and atomic registers, was first posed by Herlihy. In the absence of general results, several researchers have obtained implementations for restricted-concurrency versions of FIFO queue. We present the first Common2 algorithm for a queue with two enqueuers and any number of dequeuers. This algorithm is compatible with the unbounded concurrency model, and its enqueue and dequeue methods require only a constant number of steps.