X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=cds%2Fintrusive%2Flazy_list_nogc.h;h=e2b6f96ed5e147af0246a3ee7d89ac533496a2e6;hb=052c8a3d4032b82d5ed9452e481917ba6ceadbd7;hp=c1c40a38dfef87c31bac4004e1ab627827fc42f1;hpb=fdf12e2f87b0a309c7f5dcc713b3f5eea1909af6;p=libcds.git diff --git a/cds/intrusive/lazy_list_nogc.h b/cds/intrusive/lazy_list_nogc.h index c1c40a38..e2b6f96e 100644 --- a/cds/intrusive/lazy_list_nogc.h +++ b/cds/intrusive/lazy_list_nogc.h @@ -3,6 +3,7 @@ #ifndef __CDS_INTRUSIVE_LAZY_LIST_NOGC_H #define __CDS_INTRUSIVE_LAZY_LIST_NOGC_H +#include // unique_lock #include #include @@ -159,7 +160,7 @@ namespace cds { namespace intrusive { void dispose_node( node_type * pNode, Disposer disp ) { clear_links( pNode ); - cds::unref(disp)( node_traits::to_value_ptr( *pNode )); + disp( node_traits::to_value_ptr( *pNode )); } template @@ -354,7 +355,7 @@ namespace cds { namespace intrusive { The functor may change non-key fields of the \p item. While the functor \p f is calling the item \p item is locked. - You may pass \p func argument by reference using boost::ref or cds::ref. + You may pass \p func argument by reference using \p std::ref. Returns std::pair where \p first is true if operation is successfull, \p second is true if new item has been added or \p false if the item with \p key @@ -379,7 +380,7 @@ namespace cds { namespace intrusive { \endcode where \p item is the item found, \p val is the find function argument. - You may pass \p f argument by reference using boost::ref or cds::ref. + You may pass \p f argument by reference using \p std::ref. The functor may change non-key fields of \p item. While the functor \p f is calling the item found \p item is locked. @@ -404,7 +405,7 @@ namespace cds { namespace intrusive { \endcode where \p item is the item found, \p val is the find function argument. - You may pass \p f argument by reference using boost::ref or cds::ref. + You may pass \p f argument by reference using \p std::ref. The functor may change non-key fields of \p item. While the functor \p f is calling the item found \p item is locked. @@ -581,7 +582,7 @@ namespace cds { namespace intrusive { if ( pos.pCur != &m_Tail && cmp( *node_traits::to_value_ptr( *pos.pCur ), val ) == 0 ) { // key already in the list - cds::unref(func)( false, *node_traits::to_value_ptr( *pos.pCur ) , val ); + func( false, *node_traits::to_value_ptr( *pos.pCur ) , val ); return std::make_pair( iterator( pos.pCur ), false ); } else { @@ -589,7 +590,7 @@ namespace cds { namespace intrusive { link_checker::is_empty( node_traits::to_node_ptr( val ) ); link_node( node_traits::to_node_ptr( val ), pos.pPred, pos.pCur ); - cds::unref(func)( true, val, val ); + func( true, val, val ); ++m_ItemCounter; return std::make_pair( iterator( node_traits::to_node_ptr( val )), true ); } @@ -612,10 +613,10 @@ namespace cds { namespace intrusive { search( pHead, val, pos, cmp ); if ( pos.pCur != &m_Tail ) { - cds::lock::scoped_lock< typename node_type::lock_type> al( pos.pCur->m_Lock ); + std::unique_lock< typename node_type::lock_type> al( pos.pCur->m_Lock ); if ( cmp( *node_traits::to_value_ptr( *pos.pCur ), val ) == 0 ) { - cds::unref(f)( *node_traits::to_value_ptr( *pos.pCur ), val ); + f( *node_traits::to_value_ptr( *pos.pCur ), val ); return true; } } @@ -638,7 +639,7 @@ namespace cds { namespace intrusive { search( pHead, val, pos, cmp ); if ( pos.pCur != &m_Tail ) { - cds::lock::scoped_lock< typename node_type::lock_type> al( pos.pCur->m_Lock ); + std::unique_lock< typename node_type::lock_type> al( pos.pCur->m_Lock ); if ( cmp( *node_traits::to_value_ptr( *pos.pCur ), val ) == 0 ) { return iterator( pos.pCur );