From: khizmax Date: Mon, 7 Dec 2015 18:50:39 +0000 (+0300) Subject: Fix Map_InsDel_func test for FeldmanHashMap X-Git-Tag: v2.1.0~44 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0933eb2c26d9deb376180ebcc387e58191484be2;p=libcds.git Fix Map_InsDel_func test for FeldmanHashMap --- diff --git a/tests/unit/map2/map_insdel_func.h b/tests/unit/map2/map_insdel_func.h index fcc85430..76f59246 100644 --- a/tests/unit/map2/map_insdel_func.h +++ b/tests/unit/map2/map_insdel_func.h @@ -101,7 +101,7 @@ namespace map2 { template void operator()( Key const& key, Val& v ) { - std::unique_lock< typename value_type::lock_type> ac( v.m_access ); + std::unique_lock< typename value_type::lock_type> ac( v.m_access ); v.nKey = key; v.nData = key * 8; @@ -203,6 +203,7 @@ namespace map2 { v.bInitialized.store( true, atomics::memory_order_relaxed); } else { + assert( v.bInitialized.load( atomics::memory_order_relaxed )); v.nUpdateCall.fetch_add( 1, atomics::memory_order_relaxed ); ++nModified; } @@ -218,6 +219,8 @@ namespace map2 { template void operator()( Val& cur, Val * old ) { + if ( old ) + cur.second.bInitialized.store( true, atomics::memory_order_release ); operator()( old == nullptr, cur.first, cur.second ); }