|
Telamon
|
This module encapsulates the implementation of the simulator. More...
Namespaces | |
| telamon_private | |
| This module serves as a wrapper for the private data in the telamon_simulator module. | |
| versioning | |
| This modules contains the operatios and classes related to versioning of the objects used in the simulated algorihtm. | |
Classes | |
| class | OperationRecord |
| A class which represents a single operation contained in a OperationRecordBox. More... | |
| class | OperationRecordBox |
| A class which represents a single operation stored in the help queue. More... | |
| class | ContentionFailureCounter |
| Measures the contention which was encountered during simulation. More... | |
| class | WaitFreeSimulatorHandle |
| A handle class which is used to obtain access to the wait-free simulator. More... | |
Enumerations | |
| enum class | CasStatus : char { Pending , Success , Failure } |
| Represents the status of a CAS primitive. | |
Variables | |
| template<typename Commit > | |
| concept | Commits |
| Requires commit to be iterable and its items to satisfy CasWithVersioning. More... | |
| template<typename LockFree > | |
| concept | NormalizedRepresentation |
| Here are the operations which are required to be described in the lock-free algorithm in order to use the simulation. There are 3 types which the lock-free has to define according to its specifics as well as 3 functions. More... | |
| template<typename Cas > | |
| concept | CasWithVersioning |
| Solves the ABA problem. More... | |
This module encapsulates the implementation of the simulator.
| concept telamon_simulator::CasWithVersioning |
Solves the ABA problem.
See p.15 of the paper
| Cas | CasDescriptor primitive |
About execute: Returns either a bool marking whether the CAS was executed successfully or an error marking there was contention during the execution
| concept telamon_simulator::Commits |
Requires commit to be iterable and its items to satisfy CasWithVersioning.
| Commit | Structure which represents a commit point |
| concept telamon_simulator::NormalizedRepresentation |
Here are the operations which are required to be described in the lock-free algorithm in order to use the simulation. There are 3 types which the lock-free has to define according to its specifics as well as 3 functions.
| LockFree | The lock-free algorithm which is being simulated |
Thegenerator and wrap_up functions correspond to the first and third stage of the algorithm operation. The fast path represents the steps which are used when the operation in executed as lock-free.