diff --git a/include/boost/unordered/detail/foa/concurrent_table.hpp b/include/boost/unordered/detail/foa/concurrent_table.hpp index 52fbfc02..4fe6eca7 100644 --- a/include/boost/unordered/detail/foa/concurrent_table.hpp +++ b/include/boost/unordered/detail/foa/concurrent_table.hpp @@ -204,7 +204,7 @@ private: template struct atomic_integral { -#if 0&&defined(BOOST_UNORDERED_LATCH_FREE) +#if defined(BOOST_UNORDERED_LATCH_FREE) operator Integral()const{return n.load(std::memory_order_acquire);} void operator=(Integral m){n.store(m,std::memory_order_release);} void operator|=(Integral m){n.fetch_or(m);} @@ -571,7 +571,8 @@ public: } std::cout - <<"version: 2024/01/03 17:45; " + <<"version: 2024/01/03 20:50; " + <<"lf: "<<(double)size()/capacity()<<"; " <<"capacity: "<*>(pg)[pos]>1; - return true; + return reinterpret_cast*>(pg)[pos]>1; + //return true; } #else static bool is_occupied(group_type* pg,std::size_t pos) @@ -2005,7 +2006,7 @@ private: struct garbage_vector { static constexpr std::size_t N=256; - static constexpr std::size_t min_for_epoch_bump=32; + static constexpr std::size_t min_for_epoch_bump=64; using ssize_t=std::make_signed::type;