temporarily restricted gc to one designated thread

This commit is contained in:
joaquintides
2023-12-19 12:22:11 +01:00
parent 13d6cc0a33
commit e91f743530

View File

@ -512,7 +512,8 @@ public:
retired_element_allocator_type ral=this->al();
for(std::size_t i=0;i<garbage_vectors.size();++i){
auto& v=garbage_vectors[i];
v.epoch_bump=(i*251)%garbage_vector::min_for_epoch_bump;
//v.epoch_bump=(i*251)%garbage_vector::min_for_epoch_bump;
v.epoch_bump=i==0?0:garbage_vector::min_for_epoch_bump+1;
v.retired_elements=retired_element_traits::allocate(
ral,garbage_vector::N);
for(std::size_t j=0;j<garbage_vector::N;++j){
@ -2031,7 +2032,7 @@ private:
//++garbage_collected;
auto p=e.p.load();
this->destroy_element(p);
auto pos=static_cast<std::size_t>(e.p-this->arrays.elements());
auto pos=static_cast<std::size_t>(p-this->arrays.elements());
this->arrays.groups()[pos/N].reset(pos%N);
e.epoch=retired_element::available_;
++rpos;