Releases: boki1/telamon
v0.2 Wait-Free Simulation
Description
This version introduces a complete implementation of the simulation algorithm described here. Additionally there is an example client algorithm which uses the simulation to perform operations.
The simulation is comprised of different components which are responsible for specific sub-tasks. A few of them are the help queue, the operation helping module, the versioning of the user input ADTs, etc.
v0.1 Wait-Free Help Queue
Description
The wait-free queue is a foundational structure of the simulation algorithm. Each operation which does not succeed during the fast-path has a description of it put in this help queue. Instead of the standard ENQUEUE
and DEQUEUE
operations, it supports ENQUEUE
, PEEK
AND CONDITIONALLY-REMOVE-HEAD
which are the ones required for the simulation algorithm.
If a thread fails to complete an operation due to contention, it asks for help by enqueuing a request on the help queue. This request is a pointer to a small object allocated on the heap which uniquely identifies the operation. It is modified only by using the CAS
primitive and is reclaimed only when the operation is complete.
The provided implementation in this release has been tested with both single threaded programs and multithreaded programs.