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

#include <algs.hpp>

Collaboration diagram for stm::alg_t:

Public Member Functions

 alg_t ()
 

Public Attributes

const char * name
 
bool(* TM_FASTCALL )(TxThread *)
 
void(* TM_FASTCALL )(STM_COMMIT_SIG(,))
 
void *(* TM_FASTCALL )(STM_READ_SIG(,,))
 
scope_t *(* rollback )(STM_ROLLBACK_SIG(,,,))
 
bool(* irrevoc )(STM_IRREVOC_SIG(,))
 
void(* switcher )()
 
bool privatization_safe
 

Detailed Description

To describe an STM algorithm, we provide a name, a set of function pointers, and some other information

Constructor & Destructor Documentation

stm::alg_t::alg_t ( )
inline

Member Data Documentation

bool(* stm::alg_t::irrevoc)(STM_IRREVOC_SIG(,))
const char* stm::alg_t::name
bool stm::alg_t::privatization_safe

bool flag to indicate if an algorithm is privatization safe

NB: we should probably track levels of publication safety too, but we don't

scope_t*(* stm::alg_t::rollback)(STM_ROLLBACK_SIG(,,,))

rolls the transaction back without unwinding, returns the scope (which is set to null during rollback)

void(* stm::alg_t::switcher)()
void(* stm::alg_t::TM_FASTCALL)(STM_WRITE_SIG(,,,))

the begin, commit, read, and write methods a tx uses when it starts

void(* stm::alg_t::TM_FASTCALL)(STM_WRITE_SIG(,,,))
void*(* stm::alg_t::TM_FASTCALL)(STM_READ_SIG(,,))

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