mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-30 11:27:15 +02:00
temporarily restricted gc to one designated thread
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user