From ee40344ab23aea1e4e48f251d5c6935ef5d81404 Mon Sep 17 00:00:00 2001 From: khizmax Date: Sat, 7 Feb 2015 00:25:49 +0300 Subject: [PATCH] Bronson's AVL-tree impl --- cds/container/impl/bronson_avltree_map_rcu.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cds/container/impl/bronson_avltree_map_rcu.h b/cds/container/impl/bronson_avltree_map_rcu.h index 7ff92939..f162dc08 100644 --- a/cds/container/impl/bronson_avltree_map_rcu.h +++ b/cds/container/impl/bronson_avltree_map_rcu.h @@ -895,7 +895,7 @@ namespace cds { namespace container { if ( c_bRelaxedInsert ) { if ( pNode->version( memory_model::memory_order_acquire ) != nVersion - || pNode->child( nDir ).load( memory_model::memory_order_relaxed ) != nullptr ) + || child( pNode, nDir, memory_model::memory_order_relaxed ) != nullptr ) { m_stat.onInsertRetry(); return update_flags::retry; @@ -910,7 +910,7 @@ namespace cds { namespace container { node_scoped_lock l( m_Monitor, *pNode ); if ( pNode->version( memory_model::memory_order_relaxed ) != nVersion - || pNode->child( nDir ).load( memory_model::memory_order_relaxed ) != nullptr ) + || child( pNode, nDir, memory_model::memory_order_relaxed ) != nullptr ) { if ( c_bRelaxedInsert ) { free_node( pNew ); @@ -973,8 +973,8 @@ namespace cds { namespace container { if ( !pNode->is_valued( atomics::memory_order_relaxed ) ) return update_flags::failed; - if ( pNode->child( left_child ).load( atomics::memory_order_relaxed ) == nullptr - || pNode->child( right_child ).load( atomics::memory_order_relaxed ) == nullptr ) + if ( child( pNode, left_child, memory_model::memory_order_relaxed ) == nullptr + || child( pNode, right_child, memory_model::memory_order_relaxed ) == nullptr ) { node_type * pDamaged; mapped_type pOld; @@ -1124,7 +1124,7 @@ namespace cds { namespace container { void fix_height_and_rebalance( node_type * pNode, rcu_disposer& disp ) { - while ( pNode && pNode->m_pParent.load( memory_model::memory_order_relaxed )) { + while ( pNode && parent( pNode, memory_model::memory_order_relaxed )) { int nCond = estimate_node_condition( pNode ); if ( nCond == nothing_required || pNode->is_unlinked( memory_model::memory_order_relaxed ) ) return; -- 2.34.1