Lines Matching refs:table
173 …void enable_segment( segment_type& segment, segment_table_type table, segment_index_type seg_index… in enable_segment() argument
175 segment_type new_segment = self()->create_segment(table, seg_index, index); in enable_segment()
180 …if (!table[seg_index].compare_exchange_strong(disabled_segment, new_segment - segment_base(seg_ind… in enable_segment()
187 segment = table[seg_index].load(std::memory_order_acquire); in enable_segment()
203 size_type number_of_segments( segment_table_type table ) const { in number_of_segments() argument
206 return table == my_embedded_table ? pointers_per_embedded_table : pointers_per_long_table; in number_of_segments()
210 segment_table_type table = get_table(); in capacity() local
211 size_type num_segments = number_of_segments(table); in capacity()
214 … if (table[seg_index].load(std::memory_order_relaxed) <= segment_allocation_failure_tag) { in capacity()
221 size_type find_last_allocated_segment( segment_table_type table ) const noexcept { in find_last_allocated_segment() argument
223 size_type num_segments = number_of_segments(table); in find_last_allocated_segment()
226 if (table[seg_index].load(std::memory_order_relaxed) > segment_allocation_failure_tag) { in find_last_allocated_segment()
277 …void extend_table_if_necessary(segment_table_type& table, size_type start_index, size_type end_ind… in extend_table_if_necessary() argument
280 if (table == my_embedded_table && end_index > embedded_table_size) { in extend_table_if_necessary()
283 table = self()->allocate_long_table(my_embedded_table, start_index); in extend_table_if_necessary()
287 if (table) { in extend_table_if_necessary()
288 my_segment_table.store(table, std::memory_order_release); in extend_table_if_necessary()
290 table = my_segment_table.load(std::memory_order_acquire); in extend_table_if_necessary()
302 table = my_segment_table.load(std::memory_order_acquire); in extend_table_if_necessary()
303 } while (table == my_embedded_table); in extend_table_if_necessary()
505 segment_table_type table = my_segment_table.load(std::memory_order_acquire); in internal_subscript() local
510 extend_table_if_necessary(table, index, index + 1); in internal_subscript()
513 segment = table[seg_index].load(std::memory_order_acquire); in internal_subscript()
516 enable_segment(segment, table, seg_index, index); in internal_subscript()
523 segment = table[seg_index].load(std::memory_order_acquire); in internal_subscript()
537 void zero_table( segment_table_type table, size_type count ) { in zero_table() argument
539 table[i].store(nullptr, std::memory_order_relaxed); in zero_table()