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

#include <cm.hpp>

Collaboration diagram for stm::FCM:

Static Public Member Functions

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

Detailed Description

Fine-grained CM: we get a timestamp, and use it to decide when to abort the other thread. This is not exactly an attacker-wins policy anymore

This is based on a concept from Bobba et al. ISCA 07

Member Function Documentation

static bool stm::FCM::mayKill ( TxThread tx,
uint32_t  other 
)
inlinestatic

Permission to kill the other is granted when this transaction's timestamp is less than the other transaction's timestamp

static void stm::FCM::onAbort ( TxThread )
inlinestatic
static void stm::FCM::onBegin ( TxThread tx)
inlinestatic

On begin, we must get a timestamp. For now, we use a global counter, which is a bottleneck but ensures uniqueness.

static void stm::FCM::onCommit ( TxThread )
inlinestatic

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