m_nVersion.store( ver, order );
}
+ void exchange_version( version_type ver, atomics::memory_order order )
+ {
+ m_nVersion.exchange( ver, order );
+ }
+
int height( atomics::memory_order order ) const
{
return m_nHeight.load( order );
{
assert(pNode->version(memory_model::memory_order_acquire) == version );
assert( (version & node_type::shrinking) == 0 );
- pNode->version( version | node_type::shrinking, memory_model::memory_order_release );
+ pNode->exchange_version( version | node_type::shrinking, memory_model::memory_order_acquire );
}
static void end_change( node_type * pNode, version_type version )
{