/// Lazy ordered list
/** @ingroup cds_nonintrusive_list
- \anchor cds_nonintrusive_LazyList_gc
+ @anchor cds_nonintrusive_LazyList_gc
Usually, ordered single-linked list is used as a building block for the hash table implementation.
The complexity of searching is <tt>O(N)</tt>.
The user-defined functor is called only if the inserting is success.
@warning For \ref cds_nonintrusive_MichaelList_gc "MichaelList" as the bucket see \ref cds_intrusive_item_creating "insert item troubleshooting".
- \ref cds_nonintrusive_LazyList_gc "LazyList" provides exclusive access to inserted item and does not require any node-level
+ @ref cds_nonintrusive_LazyList_gc "LazyList" provides exclusive access to inserted item and does not require any node-level
synchronization.
*/
template <typename Q, typename Func>
already is in the set.
@warning For \ref cds_nonintrusive_MichaelList_gc "MichaelList" as the bucket see \ref cds_intrusive_item_creating "insert item troubleshooting".
- \ref cds_nonintrusive_LazyList_gc "LazyList" provides exclusive access to inserted item and does not require any node-level
+ @ref cds_nonintrusive_LazyList_gc "LazyList" provides exclusive access to inserted item and does not require any node-level
synchronization.
*/
template <typename Q, typename Func>
//@endcond
atomic_marked_ptr m_pHead ; ///< Queue's head pointer (aligned)
+ //@cond
typename opt::details::apply_padding< atomic_marked_ptr, traits::padding >::padding_type pad1_;
+ //@endcond
atomic_marked_ptr m_pTail ; ///< Queue's tail pointer (aligned)
+ //@cond
typename opt::details::apply_padding< atomic_marked_ptr, traits::padding >::padding_type pad2_;
+ //@endcond
node_type m_Dummy ; ///< dummy node
+ //@cond
typename opt::details::apply_padding< node_type, traits::padding >::padding_type pad3_;
+ //@endcond
item_counter m_ItemCounter ; ///< Item counter
stat m_Stat ; ///< Internal statistics
//@cond
//@endcond
atomic_node_ptr m_pTail; ///< Pointer to tail node
+ //@cond
typename opt::details::apply_padding< atomic_node_ptr, traits::padding >::padding_type pad1_;
+ //@endcond
atomic_node_ptr m_pHead; ///< Pointer to head node
+ //@cond
typename opt::details::apply_padding< atomic_node_ptr, traits::padding >::padding_type pad2_;
+ //@endcond
node_type m_Dummy ; ///< dummy node
+ //@cond
typename opt::details::apply_padding< atomic_node_ptr, traits::padding >::padding_type pad3_;
+ //@endcond
item_counter m_ItemCounter ; ///< Item counter
stat m_Stat ; ///< Internal statistics