tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
stm::HourglassCM Struct Reference

#include <cm.hpp>

Collaboration diagram for stm::HourglassCM:

Static Public Member Functions

static void onBegin (TxThread *tx)
 
static void onAbort (TxThread *tx)
 
static void onCommit (TxThread *tx)
 
static bool mayKill (TxThread *, uint32_t)
 

Static Public Attributes

static const uint32_t ABORT_THRESHOLD = 2
 

Detailed Description

Hourglass CM: a concerned transaction serializes all execution

Member Function Documentation

static bool stm::HourglassCM::mayKill ( TxThread ,
uint32_t   
)
inlinestatic

During the transaction, always abort conflicting transactions

static void stm::HourglassCM::onAbort ( TxThread tx)
inlinestatic

On abort, get a timestamp if I exceed some threshold

Here is the call graph for this function:

static void stm::HourglassCM::onBegin ( TxThread tx)
inlinestatic

On begin, block if there is a distinguished transaction

Here is the call graph for this function:

static void stm::HourglassCM::onCommit ( TxThread tx)
inlinestatic

On commit, release my timestamp

Here is the call graph for this function:

Member Data Documentation

const uint32_t stm::HourglassCM::ABORT_THRESHOLD = 2
static

The documentation for this struct was generated from the following file: