event_counter m_nEraseWhileFind ; ///< Count of erased item while searching
event_counter m_nExtractWhileFind ; ///< Count of extracted item while searching (RCU only)
event_counter m_nMarkFailed ; ///< Count of failed node marking (logical deletion mark)
+ event_counter m_nEraseContention ; ///< Count of key erasing contention encountered
//@cond
void onAddNode( unsigned int nHeight )
void onExtractMaxFailed() { ++m_nExtractMaxFailed; }
void onExtractMaxRetry() { ++m_nExtractMaxRetries; }
void onMarkFailed() { ++m_nMarkFailed; }
+ void onEraseContention() { ++m_nEraseContention; }
//@endcond
};
void onExtractMaxFailed() const {}
void onExtractMaxRetry() const {}
void onMarkFailed() const {}
+ void onEraseContention() const {}
//@endcond
};
<< CDSSTRESS_STAT_OUT( s, m_nSlowExtract )
<< CDSSTRESS_STAT_OUT( s, m_nEraseWhileFind )
<< CDSSTRESS_STAT_OUT( s, m_nExtractWhileFind )
- << CDSSTRESS_STAT_OUT( s, m_nMarkFailed );
+ << CDSSTRESS_STAT_OUT( s, m_nMarkFailed )
+ << CDSSTRESS_STAT_OUT( s, m_nEraseContention );
}
} // namespace cds_test