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.