tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
block_pool< T > Class Template Reference
Collaboration diagram for block_pool< T >:

Classes

struct  block_head_node_t
 
struct  shared_block_t
 

Public Member Functions

 block_pool (int _numthreads)
 
void * alloc_block (int tid)
 
void free_block (void *block, int tid)
 

Static Public Member Functions

static void * operator new (size_t size)
 
static void operator delete (void *ptr)
 

Private Member Functions

template<typename T >
struct
block_pool::block_head_node_t 
__attribute__ ((aligned(CACHELINE_BYTES)))
 

Static Private Member Functions

static shared_block_tmake_shared_block_t (void *block)
 

Private Attributes

counted_ptrglobal_pool
 
block_head_node_thead_nodes
 

Static Private Attributes

static const unsigned long GROUP_SIZE = 8
 
static const int blocksize = sizeof(shared_block_t)
 

Constructor & Destructor Documentation

template<typename T>
block_pool< T >::block_pool ( int  _numthreads)
inline

Member Function Documentation

template<typename T>
template<typename T >
struct block_pool::block_head_node_t block_pool< T >::__attribute__ ( (aligned(CACHELINE_BYTES))  )
private
template<typename T>
void* block_pool< T >::alloc_block ( int  tid)
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T>
void block_pool< T >::free_block ( void *  block,
int  tid 
)
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T>
static shared_block_t* block_pool< T >::make_shared_block_t ( void *  block)
inlinestaticprivate

Here is the caller graph for this function:

template<typename T>
static void block_pool< T >::operator delete ( void *  ptr)
inlinestatic

Here is the call graph for this function:

template<typename T>
static void* block_pool< T >::operator new ( size_t  size)
inlinestatic

Here is the call graph for this function:

Member Data Documentation

template<typename T>
const int block_pool< T >::blocksize = sizeof(shared_block_t)
staticprivate
template<typename T>
counted_ptr* block_pool< T >::global_pool
private
template<typename T>
const unsigned long block_pool< T >::GROUP_SIZE = 8
staticprivate
template<typename T>
block_head_node_t* block_pool< T >::head_nodes
private

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