Fix Map_InsDel_func test for FeldmanHashMap
authorkhizmax <libcds.dev@gmail.com>
Mon, 7 Dec 2015 18:50:39 +0000 (21:50 +0300)
committerkhizmax <libcds.dev@gmail.com>
Mon, 7 Dec 2015 18:50:39 +0000 (21:50 +0300)
tests/unit/map2/map_insdel_func.h

index fcc85430ec6fd458782f024e491c2b936b928509..76f59246407b829d5ca0de4158a251f091fecd7d 100644 (file)
@@ -101,7 +101,7 @@ namespace map2 {
                 template <typename Key, typename Val >
                 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 <typename Val>
                 void operator()( Val& cur, Val * old )
                 {
+                    if ( old )
+                        cur.second.bInitialized.store( true, atomics::memory_order_release );
                     operator()( old == nullptr, cur.first, cur.second );
                 }