Classes | |
class | SMRListNode |
This class can represents a node inside retired list of SMR, and a node inside the hazard pointer list. More... | |
class | HPRecType |
This is the class to store hazard point. More... | |
class | SMRThreadLocal |
class | SMR |
SMR way to prevent ABA for lock-free data structrue based on the following paper:. More... | |
Functions | |
template<typename TT, int K> | |
void | retireHPRec (void *thr_local) |
This function is used to clean thread-local SMR data. | |
template<typename T, int K> | |
SMR< T, K > * | getSMR () |
Factory method to return instance of SMR<T, K>. |
SMR<T, K>* internal::getSMR | ( | ) | [inline] |
void internal::retireHPRec | ( | void * | thr_local | ) | [inline] |
This function is used to clean thread-local SMR data.
It won't delete anything from rlist. Other threads should execute helpScan() to deal with this rlist. This method doesn't delete hazard pointer. When another thread is created, it can reuse this Hazard Pointer. When a thread exits, this functio will be called.
thr_local | pthread feeds this data pointer to this function. It's of type void * due to pthread is a C-API. |