internal::HPRecType< T, K > Class Template Reference

This is the class to store hazard point. More...

#include <smr.h>

List of all members.

Public Types

typedef T NodeType
typedef SMRListNode< NodeType * > SMR_Node

Public Member Functions

 HPRecType ()
 ~HPRecType ()

Public Attributes

volatile NodeTypehp [K]
HPRecTypenext
atomic< bool > active
SMR_Noderlist
int rcount
int nrThreads


Detailed Description

template<typename T, int K>
class internal::HPRecType< T, K >

This is the class to store hazard point.

It will be linked to a list throuth the "next" field. Each thread will have only one HPRecType object and it's read-only to other threads. Whenever a thread wants to delete a node, it will put the node into the retire list (rlist). And when rlist contains more than RH elements, thread will scan the rlist and release any node which is not contained in HPRecType objects of all threads.

Template Parameters:
T The type of node stored in SMR
K The upper limitation of number of hazard pointers per thread.

Member Typedef Documentation

template<typename T, int K>
typedef T internal::HPRecType< T, K >::NodeType

template<typename T, int K>
typedef SMRListNode<NodeType*> internal::HPRecType< T, K >::SMR_Node


Constructor & Destructor Documentation

template<typename T, int K>
internal::HPRecType< T, K >::HPRecType (  )  [inline]

template<typename T, int K>
internal::HPRecType< T, K >::~HPRecType (  )  [inline]


Member Data Documentation

template<typename T, int K>
volatile NodeType* internal::HPRecType< T, K >::hp[K]

template<typename T, int K>
HPRecType* internal::HPRecType< T, K >::next

template<typename T, int K>
atomic<bool> internal::HPRecType< T, K >::active

template<typename T, int K>
SMR_Node* internal::HPRecType< T, K >::rlist

template<typename T, int K>
int internal::HPRecType< T, K >::rcount

template<typename T, int K>
int internal::HPRecType< T, K >::nrThreads


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

Generated on Tue Dec 9 13:39:40 2008 for Amino by  doxygen 1.5.6