On dev: bronson-unit-test
authorkhizmax <libcds.dev@gmail.com>
Wed, 25 Feb 2015 20:15:33 +0000 (23:15 +0300)
committerkhizmax <libcds.dev@gmail.com>
Wed, 25 Feb 2015 20:15:33 +0000 (23:15 +0300)
17 files changed:
1  2 
cds/container/bronson_avltree_map_rcu.h
cds/container/impl/bronson_avltree_map_rcu.h
projects/Win/vc12/unit-map-delodd.vcxproj
projects/Win/vc12/unit-map-find.vcxproj
projects/Win/vc12/unit-map-insdel.vcxproj
tests/unit/map2/map_defs.h
tests/unit/map2/map_delodd.cpp
tests/unit/map2/map_find_int.cpp
tests/unit/map2/map_find_string.cpp
tests/unit/map2/map_insdel_func.cpp
tests/unit/map2/map_insdel_int.cpp
tests/unit/map2/map_insdel_item_int.cpp
tests/unit/map2/map_insdel_item_string.cpp
tests/unit/map2/map_insdel_string.cpp
tests/unit/map2/map_insdelfind.cpp
tests/unit/map2/map_insfind_int.cpp
tests/unit/map2/map_types.h

index f5c6b6039d029496c113b913f78046ac159f4806,f5c6b6039d029496c113b913f78046ac159f4806..027586e62fdc6c7c74e308b76a2ed636f6f464e4
@@@ -97,6 -97,6 +97,10 @@@ namespace cds { namespace container 
  
          /// Enabled or disabled @ref bronson_avltree::relaxed_insert "relaxed insertion"
          static bool const c_bRelaxedInsert = traits::relaxed_insert;
++
++        /// Group of \p extract_xxx functions does not require external locking
++        static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
++
          typedef typename base_class::rcu_lock   rcu_lock;  ///< RCU scoped lock
  
          /// Returned pointer to \p mapped_type of extracted node
              return std::make_pair( result != 0, (result & update_flags::result_inserted) != 0 );
          }
  
++        //@cond
++        template <typename K, typename Func>
++        std::pair<bool, bool> ensure( K const& key, Func func )
++        {
++            return update( key, func );
++        }
++        //@endcond
++
++
          /// Delete \p key from the map
          /**
              RCU \p synchronize() method can be called. RCU should not be locked.
index a314847faec58f4fbc28b8c82d089fb4ca2af0a0,a314847faec58f4fbc28b8c82d089fb4ca2af0a0..53d2950ff123671e4e564d14993fbafefdc2f0bb
@@@ -67,6 -67,6 +67,9 @@@ namespace cds { namespace container 
          /// Enabled or disabled @ref bronson_avltree::relaxed_insert "relaxed insertion"
          static CDS_CONSTEXPR bool const c_bRelaxedInsert = traits::relaxed_insert;
  
++        /// Group of \p extract_xxx functions does not require external locking
++        static CDS_CONSTEXPR const bool c_bExtractLockExternal = false;
++
  #   ifdef CDS_DOXYGEN_INVOKED
          /// Returned pointer to \p mapped_type of extracted node
          typedef cds::urcu::exempt_ptr< gc, T, T, disposer, void > exempt_ptr;
              \p second is \p true if new node has been added or \p false if the node with \p key
              already exists.
          */
--        template <typename K, typename Func>
++        template <typename K>
          std::pair<bool, bool> update( K const& key, mapped_type pVal, bool bInsert = true )
          {
              int result = do_update( key, key_comparator(),
              return std::make_pair( result != 0, (result & update_flags::result_inserted) != 0 );
          }
  
++        //@cond
++        template <typename K>
++        std::pair<bool, bool> ensure( K const& key, mapped_type pVal )
++        {
++            return update( key, pVal, true );
++        }
++
++        //@endcond
++
          /// Delete \p key from the map
          /**
              RCU \p synchronize() method can be called. RCU should not be locked.
index 206ec842f5cec9c8e53aef2c7ef113232383a920,206ec842f5cec9c8e53aef2c7ef113232383a920..f0966bbdbe6df7fa9b010aea22fbc9c00a0501a8
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
index 81a78e9cef3a7840e40f940c26cebe64bb9debdb,81a78e9cef3a7840e40f940c26cebe64bb9debdb..89d21cf6d9af39335df8a33fa17bad5068b83504
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        </PrecompiledHeader>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
        <Cpp0xSupport>true</Cpp0xSupport>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        </PrecompiledHeader>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        </PrecompiledHeader>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
        <Cpp0xSupport>true</Cpp0xSupport>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        </PrecompiledHeader>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        </PrecompiledHeader>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
        <Cpp0xSupport>true</Cpp0xSupport>\r
        <UseProcessorExtensions>HOST</UseProcessorExtensions>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        </PrecompiledHeader>\r
        <WarningLevel>Level3</WarningLevel>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
        <Cpp0xSupport>true</Cpp0xSupport>\r
        <UseProcessorExtensions>HOST</UseProcessorExtensions>\r
++      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
      </ClCompile>\r
      <Link>\r
        <AdditionalDependencies>unit-prerequisites.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
index 69b9ad3391ed4222dc6557e8621c3903ed6191c2,69b9ad3391ed4222dc6557e8621c3903ed6191c2..d90a65b56f19dbb66955b3b5399eeb35cf8b0cbd
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
        <Optimization>Disabled</Optimization>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <MinimalRebuild>true</MinimalRebuild>\r
        <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
        <IntrinsicFunctions>true</IntrinsicFunctions>\r
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
        <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\unit;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
++      <PreprocessorDefinitions>WIN32;NOMINMAX;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
        <FunctionLevelLinking>true</FunctionLevelLinking>\r
        <PrecompiledHeader>\r
index 1818e7ddb678859be8f497ab100306bdb182c6ed,1818e7ddb678859be8f497ab100306bdb182c6ed..4667f27c3735e2c93612289c69ce58a8b266f0b7
@@@ -433,6 -433,6 +433,121 @@@ TEST_MAP_EXTRACT(SplitList_Lazy_RCU_SHT
      CPPUNIT_TEST(EllenBinTreeMap_rcu_gpt_stat)\
      CDSUNIT_TEST_EllenBinTreeMap_RCU_signal
  
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++#   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_cmp_ic) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_cmp_ic) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_cmp_ic_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_cmp_ic_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
++
++#   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_ic) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_ic) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_cmp_ic_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_cmp_ic_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat) \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat) \
++
++#else
++#   define CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
++#   define CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
++#endif
++
++#define CDSUNIT_DECLARE_BronsonAVLTreeMap \
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_cmp_ic)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_cmp_ic)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_cmp_ic)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_cmp_ic_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_cmp_ic_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_cmp_ic_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
++    TEST_MAP_NOLF_EXTRACT(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
++    CDSUNIT_DECLARE_BronsonAVLTreeMap_RCU_signal
++
++#define CDSUNIT_TEST_BronsonAVLTreeMap \
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_ic)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_ic)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_ic)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_cmp_ic_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_cmp_ic_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_cmp_ic_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat)\
++    CPPUNIT_TEST(BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat)\
++    CDSUNIT_TEST_BronsonAVLTreeMap_RCU_signal
  
  #define CDSUNIT_DECLARE_StripedMap_common \
      TEST_MAP(StripedMap_list) \
index 655bc1f7d158f43ff23c8136374badf93083bb04,655bc1f7d158f43ff23c8136374badf93083bb04..02332e1e8f355c1ee8238db3576f0839117e1415
@@@ -163,6 -163,6 +163,9 @@@ namespace map2 
                  template <typename Q>
                  void operator()( bool /*bNew*/, Q const& )
                  {}
++                template <typename Q, typename V>
++                void operator()( bool /*bNew*/, Q const&, V& )
++                {}
              };
          public:
              size_t  m_nInsertSuccess;
          CDSUNIT_DECLARE_CuckooMap
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          //CDSUNIT_DECLARE_StdMap
  
          CPPUNIT_TEST_SUITE( Map_DelOdd )
              CDSUNIT_TEST_SplitList
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              //CDSUNIT_TEST_StripedMap
              //CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index 0933cdf1593e2c648b9f5670ae40886fc43f435d,0933cdf1593e2c648b9f5670ae40886fc43f435d..789fc18022d20db7e33bfe2bd469e434deaca2ea
@@@ -266,6 -266,6 +266,7 @@@ namespace map2 
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_SkipListMap_nogc
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_SkipListMap_nogc
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index d4cb0ca73ab77681612fdc57e5a38812c929a9c6,d4cb0ca73ab77681612fdc57e5a38812c929a9c6..d796bef664106f73d8522840d585f9398a352e91
@@@ -261,6 -261,6 +261,7 @@@ namespace map2 
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_SkipListMap_nogc
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_SkipListMap_nogc
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index 365f2de773724ffc6073dfa313a4ffac0b4d7449,365f2de773724ffc6073dfa313a4ffac0b4d7449..5309f02379c51380eabcf4d52f829d3dc903169d
@@@ -531,6 -531,6 +531,7 @@@ namespace map2 
      CDSUNIT_DECLARE_SplitList
      CDSUNIT_DECLARE_SkipListMap
      CDSUNIT_DECLARE_EllenBinTreeMap
++    CDSUNIT_DECLARE_BronsonAVLTreeMap
      CDSUNIT_DECLARE_StripedMap
      CDSUNIT_DECLARE_RefinableMap
      CDSUNIT_DECLARE_CuckooMap
          CDSUNIT_TEST_SplitList
          CDSUNIT_TEST_SkipListMap
          CDSUNIT_TEST_EllenBinTreeMap
++        CDSUNIT_TEST_BronsonAVLTreeMap
          CDSUNIT_TEST_StripedMap
          CDSUNIT_TEST_RefinableMap
          CDSUNIT_TEST_CuckooMap
index b669d02844d27d8c9a7425e7f54633b50fd7784a,b669d02844d27d8c9a7425e7f54633b50fd7784a..57a2031d8c95d7e0502d896448e63cab610d373a
@@@ -258,6 -258,6 +258,7 @@@ namespace map2 
          CDSUNIT_DECLARE_SplitList
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SplitList
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index ddf1726b7fb70d75b7e506d2844e9934054d82ee,ddf1726b7fb70d75b7e506d2844e9934054d82ee..deb0432f327e17fefd589f5376312800edc15238
@@@ -50,6 -50,6 +50,13 @@@ namespace map2 
                      if ( bNew )
                          item.second = item.first;
                  }
++
++                // for BronsonAVLTreeMap
++                void operator()( bool bNew, key_type key, value_type& val )
++                {
++                    if ( bNew )
++                        val = key;
++                }
              };
  
          public:
          CDSUNIT_DECLARE_SplitList
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SplitList
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index be1ccb9558f01eafea9b4cb1c2291b09d5cf622b,be1ccb9558f01eafea9b4cb1c2291b09d5cf622b..a34be050e7ef46eea09efd6ce91b26faa313fead
@@@ -95,6 -95,6 +95,11 @@@ namespace map2 
                  {
                      val.second = 0;
                  }
++                // for BronsonAVLTreeMap
++                void operator()( typename Map::mapped_type& val )
++                {
++                    val = 0;
++                }
              };
  
              virtual Deleter *    clone()
          CDSUNIT_DECLARE_SplitList
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SplitList
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index 968289036259648c8405f9bf9fd2c8715b4251d3,968289036259648c8405f9bf9fd2c8715b4251d3..f95b838bde4e0663a02d99eca99c9320bede26ee
@@@ -259,6 -259,6 +259,7 @@@ namespace map2 
          CDSUNIT_DECLARE_SplitList
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SplitList
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index 60a925e8921d10d29c2fb58864fe8d9300ac3f70,60a925e8921d10d29c2fb58864fe8d9300ac3f70..79bfc2fd498b6f2e38645ba145eb47b5ad7f7528
@@@ -253,6 -253,6 +253,7 @@@ namespace map2 
          CDSUNIT_DECLARE_SplitList
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SplitList
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index 95faddffc19240db85a50ca54ae64d9a558f06ab,95faddffc19240db85a50ca54ae64d9a558f06ab..fc13e27f29bd4eb97faf6e3adbfbecf66874bfc9
@@@ -203,6 -203,6 +203,7 @@@ namespace map2 
          CDSUNIT_DECLARE_SkipListMap
          CDSUNIT_DECLARE_SkipListMap_nogc
          CDSUNIT_DECLARE_EllenBinTreeMap
++        CDSUNIT_DECLARE_BronsonAVLTreeMap
          CDSUNIT_DECLARE_StripedMap
          CDSUNIT_DECLARE_RefinableMap
          CDSUNIT_DECLARE_CuckooMap
              CDSUNIT_TEST_SkipListMap
              CDSUNIT_TEST_SkipListMap_nogc
              CDSUNIT_TEST_EllenBinTreeMap
++            CDSUNIT_TEST_BronsonAVLTreeMap
              CDSUNIT_TEST_StripedMap
              CDSUNIT_TEST_RefinableMap
              CDSUNIT_TEST_CuckooMap
index ff63de4eabe6079648c47f56af0ec258d1f6129c,ff63de4eabe6079648c47f56af0ec258d1f6129c..751813750af5392376d6d15c0a7ca840f9107af5
@@@ -41,6 -41,6 +41,9 @@@
  #include <cds/container/ellen_bintree_map_hp.h>
  #include <cds/container/ellen_bintree_map_dhp.h>
  
++#include <cds/sync/pool_monitor.h>
++#include <cds/container/bronson_avltree_map_rcu.h>
++
  #include <boost/version.hpp>
  #if BOOST_VERSION >= 104800
  #   include <cds/container/striped_map/boost_list.h>
@@@ -62,6 -62,6 +65,7 @@@
  #include "print_split_list_stat.h"
  #include "print_skip_list_stat.h"
  #include "print_ellenbintree_stat.h"
++#include "print_bronsonavltree_stat.h"
  #include "ellen_bintree_update_desc_pool.h"
  
  namespace map2 {
          typedef cc::EllenBinTreeMap< rcu_sht, Key, Value, traits_EllenBinTreeMap_stat_sht > EllenBinTreeMap_rcu_sht_stat;
  #endif
  
++        // ***************************************************************************
++        // BronsonAVLTreeMap
++        typedef cds::memory::vyukov_queue_pool< std::mutex > BronsonAVLTreeMap_simple_pool;
++        typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > BronsonAVLTreeMap_lazy_pool;
++        typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > BronsonAVLTreeMap_bounded_pool;
++
++        struct BronsonAVLTreeMap_less: public 
++            cc::bronson_avltree::make_traits<
++                co::less< less >
++                ,cc::bronson_avltree::relaxed_insert< false >
++            >::type
++        {};
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less > BronsonAVLTreeMap_rcu_gpi_less;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less > BronsonAVLTreeMap_rcu_gpb_less;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less > BronsonAVLTreeMap_rcu_gpt_less;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less > BronsonAVLTreeMap_rcu_shb_less;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less > BronsonAVLTreeMap_rcu_sht_less;
++#endif
++        struct BronsonAVLTreeMap_less_stat : public BronsonAVLTreeMap_less
++        {
++            typedef cc::bronson_avltree::stat<> stat;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_stat > BronsonAVLTreeMap_rcu_gpi_less_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_stat > BronsonAVLTreeMap_rcu_gpb_less_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_stat > BronsonAVLTreeMap_rcu_gpt_less_stat;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_stat > BronsonAVLTreeMap_rcu_shb_less_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_stat > BronsonAVLTreeMap_rcu_sht_less_stat;
++#endif
++        struct BronsonAVLTreeMap_cmp_ic: public 
++            cc::bronson_avltree::make_traits<
++                co::less< compare >
++                ,cc::bronson_avltree::relaxed_insert< true >
++                ,co::item_counter< cds::atomicity::item_counter >
++            >::type
++        {};
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_cmp_ic > BronsonAVLTreeMap_rcu_gpi_cmp_ic;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_cmp_ic > BronsonAVLTreeMap_rcu_gpb_cmp_ic;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_cmp_ic > BronsonAVLTreeMap_rcu_gpt_cmp_ic;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_cmp_ic > BronsonAVLTreeMap_rcu_shb_cmp_ic;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_cmp_ic > BronsonAVLTreeMap_rcu_sht_cmp_ic;
++#endif
++        struct BronsonAVLTreeMap_cmp_ic_stat : public BronsonAVLTreeMap_cmp_ic
++        {
++            typedef cc::bronson_avltree::stat<> stat;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_cmp_ic_stat > BronsonAVLTreeMap_rcu_gpi_cmp_ic_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_cmp_ic_stat > BronsonAVLTreeMap_rcu_gpb_cmp_ic_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_cmp_ic_stat > BronsonAVLTreeMap_rcu_gpt_cmp_ic_stat;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_cmp_ic_stat > BronsonAVLTreeMap_rcu_shb_cmp_ic_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_cmp_ic_stat > BronsonAVLTreeMap_rcu_sht_cmp_ic_stat;
++#endif
++
++        struct BronsonAVLTreeMap_less_pool_simple: public BronsonAVLTreeMap_less
++        {
++            typedef cds::sync::pool_monitor<BronsonAVLTreeMap_simple_pool> sync_monitor;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_pool_simple > BronsonAVLTreeMap_rcu_gpi_less_pool_simple;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_pool_simple > BronsonAVLTreeMap_rcu_gpb_less_pool_simple;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_pool_simple > BronsonAVLTreeMap_rcu_gpt_less_pool_simple;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_pool_simple > BronsonAVLTreeMap_rcu_shb_less_pool_simple;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_pool_simple > BronsonAVLTreeMap_rcu_sht_less_pool_simple;
++#endif
++        struct BronsonAVLTreeMap_less_pool_simple_stat : public BronsonAVLTreeMap_less_pool_simple
++        {
++            typedef cc::bronson_avltree::stat<> stat;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_pool_simple_stat > BronsonAVLTreeMap_rcu_gpi_less_pool_simple_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_pool_simple_stat > BronsonAVLTreeMap_rcu_gpb_less_pool_simple_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_pool_simple_stat > BronsonAVLTreeMap_rcu_gpt_less_pool_simple_stat;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_pool_simple_stat > BronsonAVLTreeMap_rcu_shb_less_pool_simple_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_pool_simple_stat > BronsonAVLTreeMap_rcu_sht_less_pool_simple_stat;
++#endif
++        struct BronsonAVLTreeMap_less_pool_lazy: public BronsonAVLTreeMap_less
++        {
++            typedef cds::sync::pool_monitor<BronsonAVLTreeMap_lazy_pool> sync_monitor;
++            static CDS_CONSTEXPR bool const relaxed_insert = true;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_pool_lazy > BronsonAVLTreeMap_rcu_gpi_less_pool_lazy;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_pool_lazy > BronsonAVLTreeMap_rcu_gpb_less_pool_lazy;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_pool_lazy > BronsonAVLTreeMap_rcu_gpt_less_pool_lazy;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_pool_lazy > BronsonAVLTreeMap_rcu_shb_less_pool_lazy;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_pool_lazy > BronsonAVLTreeMap_rcu_sht_less_pool_lazy;
++#endif
++        struct BronsonAVLTreeMap_less_pool_lazy_stat : public BronsonAVLTreeMap_less_pool_lazy
++        {
++            typedef cc::bronson_avltree::stat<> stat;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_pool_lazy_stat > BronsonAVLTreeMap_rcu_gpi_less_pool_lazy_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_pool_lazy_stat > BronsonAVLTreeMap_rcu_gpb_less_pool_lazy_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_pool_lazy_stat > BronsonAVLTreeMap_rcu_gpt_less_pool_lazy_stat;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_pool_lazy_stat > BronsonAVLTreeMap_rcu_shb_less_pool_lazy_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_pool_lazy_stat > BronsonAVLTreeMap_rcu_sht_less_pool_lazy_stat;
++#endif
++        struct BronsonAVLTreeMap_less_pool_bounded: public BronsonAVLTreeMap_less
++        {
++            typedef cds::sync::pool_monitor<BronsonAVLTreeMap_bounded_pool> sync_monitor;
++            static CDS_CONSTEXPR bool const relaxed_insert = true;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_pool_bounded > BronsonAVLTreeMap_rcu_gpi_less_pool_bounded;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_pool_bounded > BronsonAVLTreeMap_rcu_gpb_less_pool_bounded;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_pool_bounded > BronsonAVLTreeMap_rcu_gpt_less_pool_bounded;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_pool_bounded > BronsonAVLTreeMap_rcu_shb_less_pool_bounded;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_pool_bounded > BronsonAVLTreeMap_rcu_sht_less_pool_bounded;
++#endif
++        struct BronsonAVLTreeMap_less_pool_bounded_stat : public BronsonAVLTreeMap_less_pool_bounded
++        {
++            typedef cc::bronson_avltree::stat<> stat;
++        };
++        typedef cc::BronsonAVLTreeMap< rcu_gpi, Key, Value, BronsonAVLTreeMap_less_pool_bounded_stat > BronsonAVLTreeMap_rcu_gpi_less_pool_bounded_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpb, Key, Value, BronsonAVLTreeMap_less_pool_bounded_stat > BronsonAVLTreeMap_rcu_gpb_less_pool_bounded_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_gpt, Key, Value, BronsonAVLTreeMap_less_pool_bounded_stat > BronsonAVLTreeMap_rcu_gpt_less_pool_bounded_stat;
++#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
++        typedef cc::BronsonAVLTreeMap< rcu_shb, Key, Value, BronsonAVLTreeMap_less_pool_bounded_stat > BronsonAVLTreeMap_rcu_shb_less_pool_bounded_stat;
++        typedef cc::BronsonAVLTreeMap< rcu_sht, Key, Value, BronsonAVLTreeMap_less_pool_bounded_stat > BronsonAVLTreeMap_rcu_sht_less_pool_bounded_stat;
++#endif
++
          // ***************************************************************************
          // Standard implementations
  
          ellen_bintree_check::check_stat( s.statistics() );
      }
  
++    // BronsonAVLTreeMap
++    template <typename GC, typename Key, typename T, typename Traits>
++    static inline void print_stat( cc::BronsonAVLTreeMap<GC, Key, T, Traits> const& s )
++    {
++        CPPUNIT_MSG( s.statistics() );
++    }
++
++    template <typename GC, typename Key, typename T, typename Traits>
++    static inline void additional_check( cc::BronsonAVLTreeMap<GC, Key, T, Traits>& m )
++    {
++        m.check_consistency([]( size_t nLevel, size_t hLeft, size_t hRight )
++            { 
++                CPPUNIT_MSG( "Tree violation on level=" << nLevel << ": hLeft=" << hLeft << ", hRight=" << hRight ) 
++            });
++    }
  
      template <typename K, typename V, typename Traits>
      static inline void print_stat( CuckooMap< K, V, Traits > const& m )