Wait-free linked-lists

Shahar Timnat, Anastasia Braginsky, Alex Kogan, Erez Petrank

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review


Wait-freedom is the strongest and most desirable progress guarantee, under which any thread must make progress when given enough CPU steps. Wait-freedom is required for hard real-time, and desirable in many other scenarios. However, because wait-freedom is hard to achieve, we usually settle for the weaker lock-free progress guarantee, under which one of the active threads is guaranteed to make progress. With lock-freedom (and unlike wait-freedom), starvation of all threads but one is possible. The linked-list data structure is fundamental and ubiquitous. Lock-free versions of the linked-list are well known. However, whether it is possible to design a practical wait-free linked-list has remained an open question. In this work we present a practical wait-free linked-list based on the CAS primitive. To improve performance further, we also extend this design using the fast-path-slow-path methodology. The proposed design has been implemented and measurements demonstrate performance competitive with that of Harris's lock-free list, while still providing the desirable wait-free guarantee, required for real-time systems.

Original languageEnglish
Title of host publicationPrinciples of Distributed Systems - 16th International Conference, OPODIS 2012, Proceedings
Number of pages15
StatePublished - 2012
Event16th International Conference on Principles of Distributed Systems, OPODIS 2012 - Rome, Italy
Duration: 18 Dec 201220 Dec 2012

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7702 LNCS


Conference16th International Conference on Principles of Distributed Systems, OPODIS 2012

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computer Science(all)


Dive into the research topics of 'Wait-free linked-lists'. Together they form a unique fingerprint.

Cite this