typedef typename hook::node_type node_type; ///< node type
typedef typename traits::disposer disposer; ///< leaf node disposer
+ typedef typename traits::back_off back_off; ///< back-off strategy
protected:
//@cond
unique_internal_node_ptr pNewInternal;
retired_list updRetire;
+ back_off bkoff;
{
rcu_lock l;
}
}
+ bkoff();
m_Stat.onInsertRetry();
}
}
unique_internal_node_ptr pNewInternal;
retired_list updRetire;
+ back_off bkoff;
{
rcu_lock l;
break;
}
}
+
+ bkoff();
m_Stat.onEnsureRetry();
}
}
retired_list updRetire;
update_desc * pOp = nullptr;
search_result res;
+ back_off bkoff;
{
rcu_lock l;
}
}
+ bkoff();
m_Stat.onEraseRetry();
}
}
retired_list updRetire;
update_desc * pOp = nullptr;
search_result res;
+ back_off bkoff;
{
rcu_lock l;
}
}
+ bkoff();
m_Stat.onEraseRetry();
}
}
retired_list updRetire;
update_desc * pOp = nullptr;
search_result res;
+ back_off bkoff;
{
rcu_lock l;
}
}
}
+
+ bkoff();
m_Stat.onExtractMaxRetry();
}
}
retired_list updRetire;
update_desc * pOp = nullptr;
search_result res;
+ back_off bkoff;
{
rcu_lock l;
}
}
+ bkoff();
m_Stat.onExtractMinRetry();
}
}