#include <iostream>
#include <stdexcept>
#include <iterator>
#include "smr.h"
Go to the source code of this file.
Namespaces | |
namespace | amino |
Classes | |
class | amino::NodeType< KeyType > |
The node type, which stores the data and a next pointer in it. More... | |
class | amino::FindStateHolder< KeyType > |
a state holder, which stores the pointer of the current node and the pointers of the current node's previous and next in it. More... | |
struct | amino::__list_iterator< T > |
The iterator of the list. More... | |
struct | amino::__list_const_iterator< T > |
The const iterator of the list. More... | |
class | amino::List< KeyType > |
This is an implementation of a lock-free linked list data structure. The implementation is according to the paper High Performance Dynamic Lock-Free Hash Tables and List-Based Sets by Maged M. Michael, 2002. To gain a complete understanding of this data structure, please first read this paper, available at: http://www.research.ibm.com/people/m/michael/spaa-2002.pdf. More... | |
Defines | |
#define | NHPOINTER 3 |
#define | POINTER(p) ((NodeType<KeyType>*)(((long)(p))&(~3))) |
#define | MARK(p) ((NodeType<KeyType>*)(((long)(p))|(1))) |
#define | MARKED(p) (((long)(p))&(1)) |
Functions | |
template<typename T> | |
bool | amino::operator== (const __list_iterator< T > &lhs, const __list_const_iterator< T > &rhs) |
template<typename T> | |
bool | amino::operator!= (const __list_iterator< T > &lhs, const __list_const_iterator< T > &rhs) |
#define MARK | ( | p | ) | ((NodeType<KeyType>*)(((long)(p))|(1))) |
#define MARKED | ( | p | ) | (((long)(p))&(1)) |
#define NHPOINTER 3 |
#define POINTER | ( | p | ) | ((NodeType<KeyType>*)(((long)(p))&(~3))) |