From 9b5545e30c067cd777f785b59b9927ce0beedc77 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Mon, 29 Jan 2024 13:12:47 +0100 Subject: [PATCH] avoided unnecessary epoch bumps --- .../boost/unordered/detail/foa/concurrent_table.hpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/include/boost/unordered/detail/foa/concurrent_table.hpp b/include/boost/unordered/detail/foa/concurrent_table.hpp index 59d2566f..ab023fc0 100644 --- a/include/boost/unordered/detail/foa/concurrent_table.hpp +++ b/include/boost/unordered/detail/foa/concurrent_table.hpp @@ -572,7 +572,7 @@ public: } std::cout - <<"version: 2024/01/29 11:50; " + <<"version: 2024/01/29 13:10; " <<"lf: "<<(double)size()/capacity()<<"; " <<"capacity: "<=ce-1&& + current_epoch.compare_exchange_strong(ce,ce+1)){ + v.epoch=ce+1; + } } --v.size; v.mcos+=mco; @@ -2078,6 +2084,7 @@ private: if(expected==retired_element::reserved_){ /* other thread wrote */ } else{ /* vector full */ + v.epoch=current_epoch.load(); garbage_collect(v,max_safe_epoch()); } }