Implementation of a wait-free synchronization primitive that solves n-process consensus

Dror G. Feitelson*, Larry Rudolph

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review


Several synchronization primitives were compared in a recent paper by Herlihy (1988), using their ability to implement wait-free shared data objects as a measure of relative strength. Wait-free n-process consensus was shown to be a useful generic problem, whose solution for different values of n creates a hierarchy of primitives. Well-known primitives such as test-and-set, swap, and fetch-and-add, can only solve 2-process consensus, and thus cannot be used to implement arbitrary wait-free objects. Stronger primitives that solve the n-process version were also suggested in the paper; these include memory-to-memory swap, compare-and-swap, and fetch-and-cons. However, it is not clear that these primitives can be implemented in a satisfactory manner. In this note a new primitive that solves the wait-free n-process consensus problem is presented: the fetch-and-conditional-swap. This primitive is easily implementable by a combining network.

Original languageAmerican English
Pages (from-to)81-83
Number of pages3
JournalInformation Processing Letters
Issue number2
StatePublished - 24 Jul 1989


  • Consensus
  • read-modify-write
  • write-free synchronization


Dive into the research topics of 'Implementation of a wait-free synchronization primitive that solves n-process consensus'. Together they form a unique fingerprint.

Cite this