diff --git a/include/boost/unordered/detail/foa/concurrent_table.hpp b/include/boost/unordered/detail/foa/concurrent_table.hpp index e2581d3a..84125de7 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 defined(BOOST_UNORDERED_LATCH_FREE) +#if 0&&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,7 @@ public: } std::cout - <<"version: 2024/01/02 19:42; " + <<"version: 2024/01/03 11:52; " <<"capacity: "<(pg)+n; - if(reinterpret_cast*>(pc)->exchange(1)!=1){ + if(reinterpret_cast*>(pc)->exchange(1,std::memory_order_relaxed)!=1){ #if 1 auto& v=local_garbage_vector(); --v.size; @@ -2022,7 +2022,7 @@ private: mutable std::array garbage_vectors; epoch_type current_epoch=1; unsigned char pad_[cacheline_size-sizeof(epoch_type)]; - std::size_t max_probe=default_max_probe; + std::atomic max_probe=default_max_probe; std::size_t rehashes=0; garbage_vector& local_garbage_vector()const