tlds
Transactional Operations for Linked Data Structures
|
#include <algs.hpp>
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 |
To describe an STM algorithm, we provide a name, a set of function pointers, and some other information
|
inline |
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(,,)) |