Changed SplitListSet/Map<RCU> for new MichaelList extract()/get() semantics
authorkhizmax <libcds.dev@gmail.com>
Sat, 30 May 2015 15:30:12 +0000 (18:30 +0300)
committerkhizmax <libcds.dev@gmail.com>
Sat, 30 May 2015 15:30:12 +0000 (18:30 +0300)
21 files changed:
cds/container/details/split_list_base.h
cds/container/split_list_map_rcu.h
cds/container/split_list_set_rcu.h
cds/intrusive/split_list_rcu.h
tests/test-hdr/map/hdr_map.h
tests/test-hdr/map/hdr_splitlist_map_rcu_gpb.cpp
tests/test-hdr/map/hdr_splitlist_map_rcu_gpi.cpp
tests/test-hdr/map/hdr_splitlist_map_rcu_gpt.cpp
tests/test-hdr/map/hdr_splitlist_map_rcu_shb.cpp
tests/test-hdr/map/hdr_splitlist_map_rcu_sht.cpp
tests/test-hdr/set/hdr_intrusive_set.h
tests/test-hdr/set/hdr_intrusive_splitlist_set_rcu_gpb.cpp
tests/test-hdr/set/hdr_intrusive_splitlist_set_rcu_gpi.cpp
tests/test-hdr/set/hdr_intrusive_splitlist_set_rcu_gpt.cpp
tests/test-hdr/set/hdr_intrusive_splitlist_set_rcu_shb.cpp
tests/test-hdr/set/hdr_intrusive_splitlist_set_rcu_sht.cpp
tests/test-hdr/set/hdr_splitlist_set_rcu_gpb.cpp
tests/test-hdr/set/hdr_splitlist_set_rcu_gpi.cpp
tests/test-hdr/set/hdr_splitlist_set_rcu_gpt.cpp
tests/test-hdr/set/hdr_splitlist_set_rcu_shb.cpp
tests/test-hdr/set/hdr_splitlist_set_rcu_sht.cpp

index 3e7d62f760cf5123ed7bbf5051b130e8b9764a88..482f89cba236c61b1cc2836418ba7a638f42813d 100644 (file)
@@ -91,8 +91,8 @@ namespace cds { namespace container {
             /**
                 Selects appropriate ordered-list implementation for split-list.
                 Supported types are:
-                - \p michael_list_tag - for MichaelList
-                - \p lazy_list_tag - for LazyList
+                - \p michael_list_tag - for \p MichaelList
+                - \p lazy_list_tag - for \p LazyList
             */
             typedef michael_list_tag    ordered_list;
 
index ed3c5899c3e01923779bb534d0c29e3c0e959fa7..9d9397258a23eac8e9a6beba75ba8b84307b62b0 100644 (file)
@@ -178,6 +178,7 @@ namespace cds { namespace container {
         typedef typename base_class::exempt_ptr     exempt_ptr; ///< pointer to extracted node
         /// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
         static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
+        typedef typename base_class::raw_ptr        raw_ptr;    ///< type of \p get() return value
 
         //@cond
         typedef cds::container::split_list::implementation_tag implementation_tag;
@@ -462,31 +463,29 @@ namespace cds { namespace container {
             unlinks it from the map, and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item found.
             If the item with the key equal to \p key is not found the function returns an empty \p exempt_ptr.
 
-            @note The function does NOT call RCU read-side lock or synchronization,
-            and does NOT dispose the item found. It just excludes the item from the map
-            and returns a pointer to item found.
-            You should lock RCU before calling of the function, and you should synchronize RCU
-            outside the RCU lock to free extracted item
+            Depends on ordered list you should or should not lock RCU before calling of this function:
+            - for the set based on \ref cds_intrusive_MichaelList_rcu "MichaelList" RCU should not be locked
+            - for the set based on \ref cds_intrusive_LazyList_rcu "LazyList" RCU should be locked
+            See ordered list implementation for details.
 
             \code
             typedef cds::urcu::gc< general_buffered<> > rcu;
+
+            // Split-list set based on MichaelList by default
             typedef cds::container::SplitListMap< rcu, int, Foo > splitlist_map;
 
             splitlist_map theMap;
             // ...
 
             typename splitlist_map::exempt_ptr p;
-            {
-                // first, we should lock RCU
-                typename splitlist_map::rcu_lock lock;
 
-                // Now, you can apply extract function
-                // Note that you must not delete the item found inside the RCU lock
-                p = theMap.extract( 10 )
-                if ( p ) {
-                    // do something with p
-                    ...
-                }
+            // For MichaelList we should not lock RCU
+
+            // Now, you can apply extract function
+            p = theMap.extract( 10 )
+            if ( p ) {
+                // do something with p
+                ...
             }
 
             // We may safely release p here
@@ -587,7 +586,7 @@ namespace cds { namespace container {
         /// Finds \p key and return the item found
         /** \anchor cds_intrusive_SplitListMap_rcu_get
             The function searches the item with key equal to \p key and returns the pointer to item found.
-            If \p key is not found it returns \p nullptr.
+            If \p key is not found it returns empty \p raw_ptr.
 
             Note the compare functor should accept a parameter of type \p K that can be not the same as \p value_type.
 
@@ -602,7 +601,7 @@ namespace cds { namespace container {
                 // Lock RCU
                 typename splitlist_map::rcu_lock lock;
 
-                typename splitlist_map::value_type * pVal = theMap.get( 5 );
+                typename splitlist_map::raw_ptr pVal = theMap.get( 5 );
                 if ( pVal ) {
                     // Deal with pVal
                     //...
@@ -613,7 +612,7 @@ namespace cds { namespace container {
             \endcode
         */
         template <typename K>
-        value_type * get( K const& key )
+        raw_ptr get( K const& key )
         {
             return base_class::get( key );
         }
@@ -628,7 +627,7 @@ namespace cds { namespace container {
             \p pred must imply the same element order as the comparator used for building the map.
         */
         template <typename K, typename Less>
-        value_type * get_with( K const& key, Less pred )
+        raw_ptr get_with( K const& key, Less pred )
         {
             CDS_UNUSED( pred );
             return base_class::get_with( key, cds::details::predicate_wrapper<value_type, Less, key_accessor>());
index f6caeb73e052357101bd7605af7f044eb87acdb1..f2d802aedbbe0f9ad4613b5aa2f601127b14a91b 100644 (file)
@@ -9,6 +9,70 @@
 
 namespace cds { namespace container {
 
+    //@cond
+    namespace split_list { namespace details {
+
+        template <
+            typename T,
+            class OrdList,
+            typename OrdListTag
+        >
+        class make_raw_ptr;
+
+#ifdef CDSLIB_CONTAINER_DETAILS_MICHAEL_LIST_BASE_H
+        template <typename T, class RawPtr>
+        class make_raw_ptr< T, RawPtr, cds::container::michael_list_tag >
+        {
+            typedef RawPtr intrusive_raw_ptr;
+            typedef typename intrusive_raw_ptr::value_type node_type;
+            typedef T value_type;
+
+            struct raw_ptr_converter
+            {
+                value_type * operator()( node_type * p ) const
+                {
+                   return p ? &p->m_Value : nullptr;
+                }
+
+                value_type& operator()( node_type& n ) const
+                {
+                    return n.m_Value;
+                }
+
+                value_type const& operator()( node_type const& n ) const
+                {
+                    return n.m_Value;
+                }
+            };
+        public:
+            typedef cds::urcu::raw_ptr_adaptor< value_type, intrusive_raw_ptr, raw_ptr_converter > raw_ptr;
+
+            static raw_ptr make( typename intrusive_raw_ptr&& p )
+            {
+                return raw_ptr(std::move( p ));
+            }
+        };
+#endif
+
+#ifdef CDSLIB_CONTAINER_DETAILS_LAZY_LIST_BASE_H
+        template <typename T, typename RawPtr>
+        class make_raw_ptr< T, RawPtr, cds::container::lazy_list_tag >
+        {
+            typedef RawPtr node_type_pointer;
+            typedef T value_type;
+
+        public:
+            typedef value_type * raw_ptr;
+
+            static raw_ptr make( node_type_pointer p )
+            {
+                return p ? &p->m_Value : nullptr;
+            }
+        };
+#endif
+    }} //namespace split_list::details
+    //@endcond
+
     /// Split-ordered list set (template specialization for \ref cds_urcu_desc "RCU")
     /** @ingroup cds_nonintrusive_set
         \anchor cds_nonintrusive_SplitListSet_rcu
@@ -181,6 +245,7 @@ namespace cds { namespace container {
         typedef T       value_type; ///< Type of value to be storedin the set
         typedef Traits  traits;    ///< \p Traits template argument
 
+        // Note: ordered_list is not real ordered list type. Actual type is base_class::ordered_list
         typedef typename maker::ordered_list        ordered_list;   ///< Underlying ordered list class
         typedef typename base_class::key_comparator key_comparator; ///< key compare functor
 
@@ -206,6 +271,20 @@ namespace cds { namespace container {
     public:
         /// pointer to extracted node
         using exempt_ptr = cds::urcu::exempt_ptr< gc, node_type, value_type, typename maker::ordered_list_traits::disposer >;
+#   ifdef CDS_DOXYGEN_INVOKED
+        /// pointer to the node for \p get() function
+        /**
+            For \p LazyList, \p %raw_ptr is just pointer to \p value_type.
+
+            For \p MichaelList, \p %raw_ptr is \p cds::urcu::raw_ptr object giving access to \p value_type.
+        */
+        typedef implementation_defined raw_ptr;
+#   else
+    private:
+        typedef split_list::details::make_raw_ptr< value_type, typename base_class::ordered_list::raw_ptr, typename traits::ordered_list > raw_ptr_maker;
+    public:
+        typedef typename raw_ptr_maker::raw_ptr raw_ptr;
+#endif
 
     protected:
         //@cond
@@ -594,31 +673,29 @@ namespace cds { namespace container {
             unlinks it from the set, and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item found.
             If the item with the key equal to \p key is not found the function returns an empty \p exempt_ptr.
 
-            @note The function does NOT call RCU read-side lock or synchronization,
-            and does NOT dispose the item found. It just excludes the item from the set
-            and returns a pointer to item found.
-            You should lock RCU before calling of the function, and you should synchronize RCU
-            outside the RCU lock to free extracted item
+            Depends on \p bucket_type you should or should not lock RCU before calling of this function:
+            - for the set based on \ref cds_intrusive_MichaelList_rcu "MichaelList" RCU should not be locked
+            - for the set based on \ref cds_intrusive_LazyList_rcu "LazyList" RCU should be locked
+            See ordered list implementation for details.
 
             \code
             typedef cds::urcu::gc< general_buffered<> > rcu;
+
+            // Split-list set based on MichaelList by default
             typedef cds::container::SplitListSet< rcu, Foo > splitlist_set;
 
             splitlist_set theSet;
             // ...
 
             splitlist_set::exempt_ptr p;
-            {
-                // first, we should lock RCU
-                splitlist_set::rcu_lock lock;
 
-                // Now, you can apply extract function
-                // Note that you must not delete the item found inside the RCU lock
-                p = theSet.extract( 10 );
-                if ( p ) {
-                    // do something with p
-                    ...
-                }
+            // For MichaelList we should not lock RCU
+
+            // Now, you can apply extract function
+            p = theSet.extract( 10 );
+            if ( p ) {
+                // do something with p
+                ...
             }
 
             // We may safely release p here
@@ -762,10 +839,9 @@ namespace cds { namespace container {
             \endcode
         */
         template <typename Q>
-        value_type * get( Q const& key )
+        raw_ptr get( Q const& key )
         {
-            node_type * pNode = base_class::get( key );
-            return pNode ? &pNode->m_Value : nullptr;
+            return raw_ptr_maker::make( base_class::get( key ));
         }
 
         /// Finds the key \p key and return the item found
@@ -778,11 +854,10 @@ namespace cds { namespace container {
             \p pred must imply the same element order as the comparator used for building the set.
         */
         template <typename Q, typename Less>
-        value_type * get_with( Q const& key, Less pred )
+        raw_ptr get_with( Q const& key, Less pred )
         {
             CDS_UNUSED( pred );
-            node_type * pNode = base_class::get_with( key, typename maker::template predicate_wrapper<Less>::type());
-            return pNode ? &pNode->m_Value : nullptr;
+            return raw_ptr_maker::make( base_class::get_with( key, typename maker::template predicate_wrapper<Less>::type()));
         }
 
         /// Clears the set (not atomic)
index 3ba404927bdfff5b99850752ebfbed13e295c2e7..71afda514af42f4fd98b82260491ccc702874f40 100644 (file)
@@ -90,6 +90,7 @@ namespace cds { namespace intrusive {
         typedef typename ordered_list::disposer       disposer;       ///< Node disposer functor
         typedef typename ordered_list::rcu_lock       rcu_lock;       ///< RCU scoped lock
         typedef typename ordered_list::exempt_ptr     exempt_ptr;     ///< pointer to extracted node
+        typedef typename ordered_list::raw_ptr        raw_ptr;        ///< pointer to the node for \p get() function
         /// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
         static CDS_CONSTEXPR const bool c_bExtractLockExternal = ordered_list::c_bExtractLockExternal;
 
@@ -186,7 +187,7 @@ namespace cds { namespace intrusive {
             }
 
             template <typename Q, typename Compare, typename Func>
-            bool find_at( dummy_node_type * pHead, split_list::details::search_value_type<Q>& val, Compare cmp, Func f ) const
+            bool find_at( dummy_node_type * pHead, split_list::details::search_value_type<Q>& val, Compare cmp, Func f )
             {
                 assert( pHead != nullptr );
                 bucket_head_type h(pHead);
@@ -194,7 +195,7 @@ namespace cds { namespace intrusive {
             }
 
             template <typename Q, typename Compare>
-            bool find_at( dummy_node_type * pHead, split_list::details::search_value_type<Q> const & val, Compare cmp ) const
+            bool find_at( dummy_node_type * pHead, split_list::details::search_value_type<Q> const & val, Compare cmp )
             {
                 assert( pHead != nullptr );
                 bucket_head_type h(pHead);
@@ -202,7 +203,7 @@ namespace cds { namespace intrusive {
             }
 
             template <typename Q, typename Compare>
-            value_type * get_at( dummy_node_type * pHead, split_list::details::search_value_type<Q>& val, Compare cmp ) const
+            raw_ptr get_at( dummy_node_type * pHead, split_list::details::search_value_type<Q>& val, Compare cmp )
             {
                 assert( pHead != nullptr );
                 bucket_head_type h(pHead);
@@ -404,15 +405,15 @@ namespace cds { namespace intrusive {
         }
 
         template <typename Q, typename Compare>
-        value_type * get_( Q const& val, Compare cmp )
+        raw_ptr get_( Q const& val, Compare cmp )
         {
             size_t nHash = hash_value( val );
             split_list::details::search_value_type<Q const>  sv( val, split_list::regular_hash( nHash ));
             dummy_node_type * pHead = get_bucket( nHash );
             assert( pHead != nullptr );
 
-            value_type * p = m_List.get_at( pHead, sv, cmp );
-            m_Stat.onFind( p != nullptr );
+            raw_ptr p = m_List.get_at( pHead, sv, cmp );
+            m_Stat.onFind( !!p );
             return p;
         }
 
@@ -725,11 +726,10 @@ namespace cds { namespace intrusive {
             unlinks it, and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item found.
             If the item with the key equal to \p key is not found the function returns an empty \p exempt_ptr.
 
-            @note The function does NOT call RCU read-side lock or synchronization,
-            and does NOT dispose the item found. It just excludes the item from the set
-            and returns a pointer to item found.
-            You should lock RCU before calling of the function, and you should synchronize RCU
-            outside the RCU lock before reusing returned pointer.
+            Depends on \p bucket_type you should or should not lock RCU before calling of this function:
+            - for the set based on \ref cds_intrusive_MichaelList_rcu "MichaelList" RCU should not be locked
+            - for the set based on \ref cds_intrusive_LazyList_rcu "LazyList" RCU should be locked
+            See ordered list implementation for details.
 
             \code
             typedef cds::urcu::gc< general_buffered<> > rcu;
@@ -740,17 +740,15 @@ namespace cds { namespace intrusive {
             // ...
 
             rcu_splitlist_set::exempt_ptr p;
-            {
-                // first, we should lock RCU
-                rcu_splitlist_set::rcu_lock lock;
-
-                // Now, you can apply extract function
-                // Note that you must not delete the item found inside the RCU lock
-                p = theList.extract( 10 );
-                if ( p ) {
-                    // do something with p
-                    ...
-                }
+
+            // For MichaelList we should not lock RCU
+
+            // Now, you can apply extract function
+            // Note that you must not delete the item found inside the RCU lock
+            p = theList.extract( 10 );
+            if ( p ) {
+                // do something with p
+                ...
             }
 
             // We may safely release p here
@@ -873,24 +871,26 @@ namespace cds { namespace intrusive {
             RCU should be locked before call of this function.
             Returned item is valid only while RCU is locked:
             \code
-            cds::intrusive::SplitListSet< your_template_parameters > theSet;
+            typedef cds::intrusive::SplitListSet< your_template_parameters > set_class;
+            set_class theSet;
             // ...
+            typename set_class::raw_ptr rp;
             {
                 // Lock RCU
                 hash_set::rcu_lock lock;
 
-                foo * pVal = theSet.get( 5 );
-                if ( pVal ) {
-                    // Deal with pVal
+                rp = theSet.get( 5 );
+                if ( rp ) {
+                    // Deal with rp
                     //...
                 }
                 // Unlock RCU by rcu_lock destructor
-                // pVal can be retired by disposer at any time after RCU has been unlocked
+                // rp can be retired by disposer at any time after RCU has been unlocked
             }
             \endcode
         */
         template <typename Q>
-        value_type * get( Q const& key )
+        raw_ptr get( Q const& key )
         {
             return get_( key, key_comparator() );
         }
@@ -905,7 +905,7 @@ namespace cds { namespace intrusive {
             \p pred must imply the same element order as the comparator used for building the set.
         */
         template <typename Q, typename Less>
-        value_type * get_with( Q const& key, Less pred )
+        raw_ptr get_with( Q const& key, Less pred )
         {
             CDS_UNUSED( pred );
             return get_( key, typename wrapped_ordered_list::template make_compare_from_less<Less>());
index fc6872aef523495eae1cd4d91e9123d4be95df5d..e56813737c62d4e352420455a601e4683ea11dca 100644 (file)
@@ -433,6 +433,12 @@ namespace map {
             test_iter<Map>();
         }
 
+        template <class Map>
+        void test_rcu_split_list()
+        {
+            test_rcu_michael_list<Map>();
+        }
+
         template <class Map>
         void test_int_with( Map& m )
         {
index db95da0c6ad97e56fcaa59a3cd7680549f2238c0..dcd18a6624ef3d430e5588c9340ae0667186499b 100644 (file)
@@ -61,7 +61,7 @@ namespace map {
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_GPB_cmp_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -80,14 +80,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPB_less()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_GPB_less_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -106,14 +106,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPB_cmpmix()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -131,14 +131,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPB_cmpmix_stat()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_stat_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -157,7 +157,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
 } // namespace map
index 0a69b11625fb0929b1ad1b2eb0d0fb835b52e242..545e466446ca54d84618cb642b48f53d1f4764d9 100644 (file)
@@ -62,7 +62,7 @@ namespace map {
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_GPI_cmp_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -81,14 +81,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPI_less()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_GPI_less_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -107,14 +107,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPI_cmpmix()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -132,14 +132,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPI_cmpmix_stat()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_stat_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -158,7 +158,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
 } // namespace map
index d83b95b2e531611f771d67e9927aa0392df6f030..5d666c39ffdc4cd7724a598d5eb990278c49a292 100644 (file)
@@ -61,7 +61,7 @@ namespace map {
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_GPT_cmp_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -80,14 +80,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPT_less()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_GPT_less_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -106,14 +106,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPT_cmpmix()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -131,14 +131,14 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
     void HashMapHdrTest::Split_RCU_GPT_cmpmix_stat()
     {
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_stat_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -157,7 +157,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
     }
 
 } // namespace map
index a74538fada2607ff8bc0cfe972270131937841cb..1d740b7aa564be2985ca61fafab9acce6b97997b 100644 (file)
@@ -64,7 +64,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_SHB_cmp_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -83,7 +83,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
@@ -92,7 +92,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_SHB_less_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -111,7 +111,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
@@ -120,7 +120,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -138,7 +138,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
@@ -147,7 +147,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_stat_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -166,7 +166,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
index af2973d45a12ff8d7329ff30a90c62e69153bd0a..c333c4fbb40f66a587ba21f404d9aa8492909e73 100644 (file)
@@ -64,7 +64,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_SHT_cmp_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -83,7 +83,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
@@ -92,7 +92,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_SHT_less_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -111,7 +111,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
@@ -120,7 +120,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -138,7 +138,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
@@ -147,7 +147,7 @@ namespace map {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListMap< rcu_type, key_type, value_type, RCU_cmpmix_stat_traits > map_type;
-        test_rcu< map_type >();
+        test_rcu_split_list< map_type >();
 
         // option-based version
         typedef cc::SplitListMap< rcu_type,
@@ -166,7 +166,7 @@ namespace map {
                 >
             >::type
         > opt_map;
-        test_rcu< opt_map >();
+        test_rcu_split_list< opt_map >();
 #endif
     }
 
index 861d1fe19369b6f6f0fe8c19bcad22366a023d24..0355e7d3d35f7ff22fee9650b39f515944e7ce4f 100644 (file)
@@ -1033,7 +1033,7 @@ namespace set {
                     CPPUNIT_ASSERT( s.insert( arrItems[i] ));
 
                 for ( size_t i = 0; i < nLimit; i += 2 ) {
-                    value_type * 1;
+                    value_type * pVal;
                     int nKey = arr[i];
                     {
                         rcu_lock l;
index 5dcb67c46d0094272c3615c792e79dd1e85d0505..356d93359a500534680baf0392ced3d14e0ec711 100644 (file)
@@ -31,7 +31,7 @@ namespace set {
         > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_base_less()
@@ -54,7 +54,7 @@ namespace set {
         > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_base_cmpmix()
@@ -79,7 +79,7 @@ namespace set {
         > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_base_cmpmix_stat()
@@ -104,7 +104,7 @@ namespace set {
 
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_member_cmp()
@@ -129,7 +129,7 @@ namespace set {
         > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_member_less()
@@ -155,7 +155,7 @@ namespace set {
         > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_member_cmpmix()
@@ -183,7 +183,7 @@ namespace set {
         > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPB_member_cmpmix_stat()
@@ -213,7 +213,7 @@ namespace set {
         typedef ci::SplitListSet< rcu_type, ord_list, set_traits > set;
         static_assert(set::traits::dynamic_bucket_table, "Set has static bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     // Static bucket table
@@ -238,7 +238,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_base_less()
@@ -262,7 +262,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_base_cmpmix()
@@ -287,7 +287,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_base_cmpmix_stat()
@@ -313,7 +313,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_member_cmp()
@@ -340,7 +340,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_member_less()
@@ -367,7 +367,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_member_cmpmix()
@@ -395,7 +395,7 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPB_member_cmpmix_stat()
@@ -424,6 +424,6 @@ namespace set {
         > set;
         static_assert(!set::traits::dynamic_bucket_table, "Set has dynamic bucket table");
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 } // namespace set
index 36d7415bd9bfc905b5cad713c665bbfe4b38e11d..66bc7bfb3bda0caadd38ce13da383f1075d0589e 100644 (file)
@@ -31,7 +31,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_base_less()
@@ -54,7 +54,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_base_cmpmix()
@@ -79,7 +79,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_member_cmp()
@@ -104,7 +104,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_member_less()
@@ -130,7 +130,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_member_cmpmix()
@@ -158,7 +158,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
 
@@ -184,7 +184,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_base_less()
@@ -208,7 +208,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_base_cmpmix()
@@ -233,7 +233,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_member_cmp()
@@ -260,7 +260,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_member_less()
@@ -287,7 +287,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_member_cmpmix()
@@ -315,7 +315,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_base_cmpmix_stat()
@@ -340,7 +340,7 @@ namespace set {
 
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPI_member_cmpmix_stat()
@@ -370,7 +370,7 @@ namespace set {
         typedef ci::SplitListSet< rcu_type, ord_list, set_traits > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_base_cmpmix_stat()
@@ -396,7 +396,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPI_member_cmpmix_stat()
@@ -425,7 +425,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
 
index 75e9dac4aa9fa249e16a5b87d0e986ea2c4c8ae2..a685de243843201b645cbe2aab4fa18c0adcf386 100644 (file)
@@ -31,7 +31,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_base_less()
@@ -54,7 +54,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_base_cmpmix()
@@ -79,7 +79,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_member_cmp()
@@ -104,7 +104,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_member_less()
@@ -130,7 +130,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_member_cmpmix()
@@ -158,7 +158,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
 
@@ -184,7 +184,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_base_less()
@@ -208,7 +208,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_base_cmpmix()
@@ -233,7 +233,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_member_cmp()
@@ -260,7 +260,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_member_less()
@@ -287,7 +287,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_member_cmpmix()
@@ -315,7 +315,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_base_cmpmix_stat()
@@ -340,7 +340,7 @@ namespace set {
 
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_dyn_RCU_GPT_member_cmpmix_stat()
@@ -370,7 +370,7 @@ namespace set {
         typedef ci::SplitListSet< rcu_type, ord_list, set_traits > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_base_cmpmix_stat()
@@ -396,7 +396,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
     void IntrusiveHashSetHdrTest::split_st_RCU_GPT_member_cmpmix_stat()
@@ -425,7 +425,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
     }
 
 
index 8701d2737d6869c609f4724a55683538aa8510fc..9fac59fa437a59ddf18cecdd613494adfcf27010 100644 (file)
@@ -34,7 +34,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -59,7 +59,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -86,7 +86,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -113,7 +113,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -141,7 +141,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -171,7 +171,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -199,7 +199,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -225,7 +225,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -252,7 +252,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -281,7 +281,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -310,7 +310,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -340,7 +340,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -367,7 +367,7 @@ namespace set {
 
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -399,7 +399,7 @@ namespace set {
         typedef ci::SplitListSet< rcu_type, ord_list, set_traits > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -427,7 +427,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -458,7 +458,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
index 8bf2323d0d938437c1ad005a63d8829e74364d13..3cae52fb65b64200120e34cd1f450991e0e9745f 100644 (file)
@@ -34,7 +34,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -59,7 +59,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -86,7 +86,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -113,7 +113,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -141,7 +141,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -171,7 +171,7 @@ namespace set {
         > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -199,7 +199,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -225,7 +225,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -252,7 +252,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -281,7 +281,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -310,7 +310,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -340,7 +340,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -367,7 +367,7 @@ namespace set {
 
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -399,7 +399,7 @@ namespace set {
         typedef ci::SplitListSet< rcu_type, ord_list, set_traits > set;
         static_assert( set::traits::dynamic_bucket_table, "Set has static bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -427,7 +427,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
@@ -458,7 +458,7 @@ namespace set {
         > set;
         static_assert( !set::traits::dynamic_bucket_table, "Set has dynamic bucket table" );
 
-        test_rcu_int<set>();
+        test_rcu_int_michael_list<set>();
 #endif
     }
 
index ff2b132d0eac279a758ba5bfb184fa069fae6625..e384466ae2d847779f347c1a9f366cc6effa2d60 100644 (file)
@@ -63,7 +63,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_GPB_cmp_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -80,7 +80,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPB_less()
@@ -88,7 +88,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_GPB_less_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -105,14 +105,14 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPB_cmpmix()
     {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -128,14 +128,14 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPB_cmpmix_stat()
     {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_stat_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -152,7 +152,7 @@ namespace set {
                 , cc::opt::stat< cc::split_list::stat<>>
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
 } // namespace set
index 5f260c2b76ea519fa5f44ad06ba519926f261c70..1ef3adf05e8aa72a8d3c8fd824972f98a037bbc4 100644 (file)
@@ -62,7 +62,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_GPI_cmp_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -79,7 +79,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPI_less()
@@ -87,7 +87,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_GPI_less_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -104,14 +104,14 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPI_cmpmix()
     {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -127,14 +127,14 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPI_cmpmix_stat()
     {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_stat_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -151,7 +151,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
 } // namespace set
index dba223687a5a9b96a5c2a95e28ab79dbfc964663..8530136a479e0b944802a449f59dd7d6e928a89d 100644 (file)
@@ -63,7 +63,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_GPT_cmp_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -80,7 +80,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPT_less()
@@ -88,7 +88,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_GPT_less_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -105,14 +105,14 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPT_cmpmix()
     {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -128,14 +128,14 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
     void HashSetHdrTest::Split_RCU_GPT_cmpmix_stat()
     {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_stat_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -152,7 +152,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
     }
 
 } // namespace set
index 2d0cf6c3727dc815a1e80c076dd7e2c79235ba2d..378c293886aca18e68377efd31ad6d63340f9459 100644 (file)
@@ -66,7 +66,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_SHB_cmp_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -83,7 +83,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
@@ -93,7 +93,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_SHB_less_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -110,7 +110,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
@@ -119,7 +119,7 @@ namespace set {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -135,7 +135,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
@@ -144,7 +144,7 @@ namespace set {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_stat_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -161,7 +161,7 @@ namespace set {
                 ,cc::opt::stat< cc::split_list::stat<>>
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
index 62330bf694c6990f5e176da6bbc3d860ff91742c..cc83c676a112150ed7efb0259e1bbfb2048f9bab 100644 (file)
@@ -66,7 +66,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_SHT_cmp_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -83,7 +83,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
@@ -93,7 +93,7 @@ namespace set {
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_SHT_less_traits > set;
 
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -110,7 +110,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
@@ -119,7 +119,7 @@ namespace set {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -135,7 +135,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }
 
@@ -144,7 +144,7 @@ namespace set {
 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
         // traits-based version
         typedef cc::SplitListSet< rcu_type, item, RCU_cmpmix_stat_traits > set;
-        test_int_rcu< set >();
+        test_int_rcu_michael_list< set >();
 
         // option-based version
         typedef cc::SplitListSet< rcu_type, item,
@@ -161,7 +161,7 @@ namespace set {
                 >
             >::type
         > opt_set;
-        test_int_rcu< opt_set >();
+        test_int_rcu_michael_list< opt_set >();
 #endif
     }