};
} // namespace std
-/*
namespace boost {
+ inline size_t hash_value( map2::key_thread const& k )
+ {
+ return std::hash<size_t>()( k.nKey );
+ }
template <>
struct hash<map2::key_thread>
{
}
};
} // namespace boost
-*/
namespace map2 {
for ( size_t k = 0; k < c_nInsThreadCount; ++k ) {
for ( size_t i = 0; i < arrData.size(); ++i ) {
if ( arrData[i] & 1 ) {
- if ( rMap.extract_with( gp, arrData[i], key_less() ))
+ gp = rMap.extract_with( arrData[i], key_less());
+ if ( gp )
++m_nDeleteSuccess;
else
++m_nDeleteFailed;
for ( size_t k = 0; k < c_nInsThreadCount; ++k ) {
for ( size_t i = arrData.size() - 1; i > 0; --i ) {
if ( arrData[i] & 1 ) {
- if ( rMap.extract_with( gp, arrData[i], key_less() ))
+ gp = rMap.extract_with( arrData[i], key_less());
+ if ( gp )
++m_nDeleteSuccess;
else
++m_nDeleteFailed;
if ( Map::c_bExtractLockExternal ) {
{
typename Map::rcu_lock l;
- if ( rMap.extract_with( xp, arrData[i], key_less() )) {
+ xp = rMap.extract_with( arrData[i], key_less() );
+ if ( xp )
++m_nDeleteSuccess;
- }
else
++m_nDeleteFailed;
}
- xp.release();
}
else {
- if ( rMap.extract_with( xp, arrData[i], key_less() )) {
+ xp = rMap.extract_with( arrData[i], key_less() );
+ if ( xp )
++m_nDeleteSuccess;
- xp.release();
- }
else
++m_nDeleteFailed;
}
+ xp.release();
}
}
if ( getTest().m_nInsThreadCount.load( atomics::memory_order_acquire ) == 0 )
if ( Map::c_bExtractLockExternal ) {
{
typename Map::rcu_lock l;
- if ( rMap.extract_with( xp, arrData[i], key_less() ))
+ xp = rMap.extract_with( arrData[i], key_less() );
+ if ( xp )
++m_nDeleteSuccess;
else
++m_nDeleteFailed;
}
- xp.release();
}
else {
- if ( rMap.extract_with( xp, arrData[i], key_less() )) {
+ xp = rMap.extract_with( arrData[i], key_less() );
+ if ( xp )
++m_nDeleteSuccess;
- xp.release();
- }
else
++m_nDeleteFailed;
}
+ xp.release();
}
}
if ( getTest().m_nInsThreadCount.load( atomics::memory_order_acquire ) == 0 )