/// Item counter
/**
The type for item counting feature.
- By default, item counting is disabled (\p atomicity::empty_item_counter)
+ By default, item counting is disabled (\p atomicity::empty_item_counter),
\p atomicity::item_counter enables it.
*/
typedef atomicity::empty_item_counter item_counter;
static unsigned int const c_nMinHeight = 5;
//@endcond
+ // c_nMaxHeight * 2 - pPred/pSucc guards
+ // + 1 - for erase, unlink
+ // + 1 - for clear
+ static size_t const c_nHazardPtrCount = c_nMaxHeight * 2 + 2; ///< Count of hazard pointer required for the skip-list
+
protected:
typedef typename node_type::atomic_marked_ptr atomic_node_ptr; ///< Atomic marked node pointer
typedef typename node_type::marked_ptr marked_node_ptr; ///< Node marked pointer
typedef std::unique_ptr< node_type, typename node_builder::node_disposer > scoped_node_ptr;
- // c_nMaxHeight * 2 - pPred/pSucc guards
- // + 1 - for erase, unlink
- // + 1 - for clear
- static size_t const c_nHazardPtrCount = c_nMaxHeight * 2 + 2;
struct position {
node_type * pPrev[ c_nMaxHeight ];
node_type * pSucc[ c_nMaxHeight ];