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

#include <Disjoint.hpp>

Collaboration diagram for Disjoint:

Classes

struct  PaddedBuffer
 
struct  PaddedBufferEntry
 

Public Member Functions

 Disjoint (unsigned R, unsigned W, unsigned L, bool S)
 
TM_CALLABLE bool ro_transaction (uint32_t id, uint32_t startpoint TM_ARG) __attribute__((noinline))
 
TM_CALLABLE void r_rw_transaction (uint32_t id, uint32_t startpoint TM_ARG)
 

Public Attributes

PaddedBuffer privateBuffers [BUFFER_COUNT]
 
PaddedBuffer publicBuffer
 
unsigned reads_per_ten
 
unsigned writes_per_ten
 
unsigned locations_per_transaction
 
bool use_shared_read_buffer
 

Static Public Attributes

static const unsigned DJBUFFER_SIZE = 1009
 
static const unsigned BUFFER_COUNT = 256
 

Detailed Description

Copyright (C) 2011 University of Rochester Department of Computer Science and Lehigh University Department of Computer Science and Engineering

License: Modified BSD Please see the file LICENSE.RSTM for licensing information

Constructor & Destructor Documentation

Disjoint::Disjoint ( unsigned  R,
unsigned  W,
unsigned  L,
bool  S 
)
inline

Here is the call graph for this function:

Member Function Documentation

TM_CALLABLE void Disjoint::r_rw_transaction ( uint32_t  id,
uint32_t startpoint  TM_ARG 
)
inline

do some reads, do some rmw's

Here is the caller graph for this function:

bool Disjoint::ro_transaction ( uint32_t  id,
uint32_t startpoint  TM_ARG 
)

do some reads only... bool return type to keep it from being optimized out

Copyright (C) 2011 University of Rochester Department of Computer Science and Lehigh University Department of Computer Science and Engineering

License: Modified BSD Please see the file LICENSE.RSTM for licensing information Step 1: Include the configuration code for the harness, and the API code. We provide the option to build the entire benchmark in a single source. The bmconfig.hpp include defines all of the important functions that are implemented in this file, and bmharness.cpp defines the execution infrastructure. Step 2: Declare the data type that will be stress tested via this benchmark. Also provide any functions that will be needed to manipulate the data type. Take care to avoid unnecessary indirection. NB: special case here, because icc doesn't like combination of noinline and header definitions.

do some reads only... bool return type to keep it from being optimized out

Here is the caller graph for this function:

Member Data Documentation

const unsigned Disjoint::BUFFER_COUNT = 256
static
const unsigned Disjoint::DJBUFFER_SIZE = 1009
static
unsigned Disjoint::locations_per_transaction
PaddedBuffer Disjoint::privateBuffers[BUFFER_COUNT]
PaddedBuffer Disjoint::publicBuffer
unsigned Disjoint::reads_per_ten
bool Disjoint::use_shared_read_buffer
unsigned Disjoint::writes_per_ten

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