Skip to content

Releases: boki1/telamon

v0.2 Wait-Free Simulation

14 Jul 14:50
d63a6ba
Compare
Choose a tag to compare
Pre-release

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

02 Jul 14:37
Compare
Choose a tag to compare
Pre-release

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.