Fast wait-free algorithms designed for shared memory systems
Tervel is a framework and library that unifies methodologies and techniques to enable the efficient implementation of wait-free algorithms. It includes a unified memory reclamation structure, progress assurance scheme, and a construct that limits recursive helping. It advocates a call-back centric design pattern to reduce code duplication, observable states, and improve code readability.
Wait-freedom is the strongest non-blocking guarantee of progress, it guarantees system-wide progress and starvation-freedom. An algorithm is wait-free if every operation has a bound on the number of steps the algorithm will take before the operation completes. This property is critical for real-time systems.
As a framework, Tervel provides to API, tools, and examples to enable developers to craft their own wait-free algorithms. By providing implementations of memory management, progress assurance, and other constructs, Tervel allows the developer to focus on the correctness and performance of their approach.
As a library, Tervel provides several wait-free algorithms and containers, with plans to expand its collection in the near future. The concurrent API used in the implementation of these algorithms removes ambiguousness found in the sequential API, improving the developer ability to reason about correctness.