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

#include <metadata.hpp>

Collaboration diagram for stm::rrec_t:

Public Member Functions

void setbit (unsigned slot)
 
bool getbit (unsigned slot)
 
void unsetbit (unsigned slot)
 
bool setif (unsigned slot)
 
void operator|= (rrec_t &rhs)
 

Public Attributes

volatile uintptr_t bits [BUCKETS]
 

Static Public Attributes

static const uint32_t BUCKETS = MAX_THREADS / (8*sizeof(uintptr_t))
 
static const uint32_t BITS = 8*sizeof(uintptr_t)
 

Detailed Description

a reader record (rrec) holds bits representing up to MAX_THREADS reader transactions

NB: methods are implemented in algs.hpp, so that they are visible where needed, but not visible globally

Member Function Documentation

bool stm::rrec_t::getbit ( unsigned  slot)
inline

Here is the call graph for this function:

void stm::rrec_t::operator|= ( rrec_t rhs)
inline
void stm::rrec_t::setbit ( unsigned  slot)
inline

Here is the call graph for this function:

bool stm::rrec_t::setif ( unsigned  slot)
inline

Here is the call graph for this function:

void stm::rrec_t::unsetbit ( unsigned  slot)
inline

Here is the call graph for this function:

Member Data Documentation

const uint32_t stm::rrec_t::BITS = 8*sizeof(uintptr_t)
static
volatile uintptr_t stm::rrec_t::bits[BUCKETS]
const uint32_t stm::rrec_t::BUCKETS = MAX_THREADS / (8*sizeof(uintptr_t))
static

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