include/amino/list.h File Reference

#include <iostream>
#include <stdexcept>
#include <iterator>
#include "smr.h"

Go to the source code of this file.


namespace  amino


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: More...


#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))


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 Documentation

#define MARK (  )     ((NodeType<KeyType>*)(((long)(p))|(1)))

#define MARKED (  )     (((long)(p))&(1))

#define NHPOINTER   3

#define POINTER (  )     ((NodeType<KeyType>*)(((long)(p))&(~3)))

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