#include <smr.h>
Public Types | |
typedef T | NodeType |
typedef SMRListNode< NodeType * > | SMR_Node |
Public Member Functions | |
HPRecType () | |
~HPRecType () | |
Public Attributes | |
volatile NodeType * | hp [K] |
HPRecType * | next |
atomic< bool > | active |
SMR_Node * | rlist |
int | rcount |
int | nrThreads |
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.
T | The type of node stored in SMR | |
K | The upper limitation of number of hazard pointers per thread. |
typedef T internal::HPRecType< T, K >::NodeType |
typedef SMRListNode<NodeType*> internal::HPRecType< T, K >::SMR_Node |
internal::HPRecType< T, K >::HPRecType | ( | ) | [inline] |
internal::HPRecType< T, K >::~HPRecType | ( | ) | [inline] |
volatile NodeType* internal::HPRecType< T, K >::hp[K] |
HPRecType* internal::HPRecType< T, K >::next |
atomic<bool> internal::HPRecType< T, K >::active |
SMR_Node* internal::HPRecType< T, K >::rlist |
int internal::HPRecType< T, K >::rcount |
int internal::HPRecType< T, K >::nrThreads |