Lines Matching refs:this

400         return *this;
413 return *this;
418 hash_map_iterator old(*this);
655 node_allocator_type node_allocator(this->get_allocator()); in __TBB_requires()
699 while (this->is_valid(n) && !my_hash_compare.equal(key, n->value().first)) in __TBB_requires()
732 bucket_accessor b_old( this, hash & mask ); in __TBB_requires()
739 while (this->is_valid(curr)) { in __TBB_requires()
755 this->add_to_bucket(b_new, curr); in __TBB_requires()
825 __TBB_ASSERT( this->my_node, "attempt to dereference empty accessor" ); in __TBB_requires()
826 return this->my_node->value(); in __TBB_requires()
850 this->reserve(n); in __TBB_requires()
856 this->reserve(n); in __TBB_requires()
866 this->clear(); in __TBB_requires()
876 this->clear(); in __TBB_requires()
884 this->internal_move(std::move(table)); in __TBB_requires()
903 this->clear(); in __TBB_requires()
914 this->clear(); in __TBB_requires()
924 this->clear(); in __TBB_requires()
933 if( this != &table ) { in __TBB_requires()
935 copy_assign_allocators(this->my_allocator, table.my_allocator); in __TBB_requires()
938 return *this; in __TBB_requires()
943 if( this != &table ) { in __TBB_requires()
946 move_assign_allocators(this->my_allocator, table.my_allocator); in __TBB_requires()
949 return *this; in __TBB_requires()
956 return *this; in __TBB_requires()
963 this->reserve(sz); // TODO: add reduction of number of buckets as well in __TBB_requires()
964 hashcode_type mask = this->my_mask.load(std::memory_order_relaxed); in __TBB_requires()
967 bucket *bp = this->get_bucket( b ); // only the last segment should be scanned for rehashing in __TBB_requires()
970 …__TBB_ASSERT( this->is_valid(n) || empty_rehashed(n) || rehash_required(n), "Broken internal struc… in __TBB_requires()
977 b_old = this->get_bucket( h &= m ); in __TBB_requires()
980this->mark_rehashed_levels( h ); // mark all non-rehashed children recursively across all segments in __TBB_requires()
983 while (this->is_valid(curr)) { in __TBB_requires()
994 bucket *b_new = this->get_bucket(curr_node_hash & mask); in __TBB_requires()
996 this->add_to_bucket(b_new, curr); in __TBB_requires()
1009 hashcode_type m = this->my_mask.load(std::memory_order_relaxed); in __TBB_requires()
1011 this->my_size.store(0, std::memory_order_relaxed); in __TBB_requires()
1012 segment_index_type s = this->segment_index_of( m ); in __TBB_requires()
1013 …__TBB_ASSERT( s+1 == this->pointers_per_table || !this->my_table[s+1].load(std::memory_order_relax… in __TBB_requires()
1015 …__TBB_ASSERT(this->is_valid(this->my_table[s].load(std::memory_order_relaxed)), "wrong mask or con… in __TBB_requires()
1016 segment_ptr_type buckets_ptr = this->my_table[s].load(std::memory_order_relaxed); in __TBB_requires()
1017 size_type sz = this->segment_size( s ? s : 1 ); in __TBB_requires()
1020this->is_valid(n); n = buckets_ptr[i].node_list.load(std::memory_order_relaxed) ) in __TBB_requires()
1025 this->delete_segment(s); in __TBB_requires()
1027 this->my_mask.store(this->embedded_buckets - 1, std::memory_order_relaxed); in __TBB_requires()
1037 return range_type( *this, grainsize ); in __TBB_requires()
1040 return const_range_type( *this, grainsize ); in __TBB_requires()
1046 …iterator begin() { return iterator( *this, 0, this->my_embedded_segment, this->my_embedded_segment… in __TBB_requires()
1047 …const_iterator begin() const { return const_iterator( *this, 0, this->my_embedded_segment, this->m… in __TBB_requires()
1048 …const_iterator cbegin() const { return const_iterator( *this, 0, this->my_embedded_segment, this->… in __TBB_requires()
1049 iterator end() { return iterator( *this, 0, nullptr, nullptr ); } in __TBB_requires()
1050 const_iterator end() const { return const_iterator( *this, 0, nullptr, nullptr ); } in __TBB_requires()
1051 const_iterator cend() const { return const_iterator( *this, 0, nullptr, nullptr ); } in __TBB_requires()
1068 size_type size() const { return this->my_size.load(std::memory_order_acquire); } in __TBB_requires()
1079 size_type bucket_count() const { return this->my_mask.load(std::memory_order_relaxed) + 1; } in __TBB_requires()
1088 swap_allocators(this->my_allocator, table.my_allocator); in __TBB_requires()
1098 …return const_cast<concurrent_hash_map*>(this)->lookup</*insert*/false>(key, nullptr, nullptr, /*wr… in __TBB_requires()
1104 …return const_cast<concurrent_hash_map*>(this)->lookup</*insert*/false>(key, nullptr, nullptr, /*wr… in __TBB_requires()
1111 …return const_cast<concurrent_hash_map*>(this)->lookup</*insert*/false>(key, nullptr, &result, /*wr… in __TBB_requires()
1279 hashcode_type m = this->my_mask.load(std::memory_order_acquire); in __TBB_requires()
1287 bucket_accessor b( this, h & m ); in __TBB_requires()
1299 if (this->is_valid(n)) { // unfortunately, it did in __TBB_requires()
1304 if (!this->is_valid(n)) { in __TBB_requires()
1314 if( this->check_mask_race(h, m) ) in __TBB_requires()
1317 grow_segment = this->insert_new_node( b(), n = tmp_n, m ); in __TBB_requires()
1323 if( this->check_mask_race( h, m ) ) in __TBB_requires()
1341 m = this->my_mask.load(std::memory_order_acquire); in __TBB_requires()
1352 this->enable_segment( grow_segment ); in __TBB_requires()
1385 hashcode_type mask = this->my_mask.load(std::memory_order_acquire); in __TBB_requires()
1388 bucket_accessor b( this, hash & mask, /*writer=*/true ); in __TBB_requires()
1398 if (this->check_mask_race(hash, mask)) in __TBB_requires()
1411 this->my_size--; in __TBB_requires()
1427 hashcode_type mask = this->my_mask.load(std::memory_order_acquire); in __TBB_requires()
1431 bucket_accessor b( this, hash & mask ); in __TBB_requires()
1435 …while (this->is_valid(erase_node) && !my_hash_compare.equal(key, static_cast<node*>(erase_node)->v… in __TBB_requires()
1441 if (this->check_mask_race(hash, mask)) in __TBB_requires()
1445 if (this->check_mask_race(hash, mask)) // contended upgrade, check mask in __TBB_requires()
1456 this->my_size--; in __TBB_requires()
1470 hashcode_type m = this->my_mask.load(std::memory_order_relaxed); in __TBB_requires()
1473 bucket *b = this->get_bucket( h ); in __TBB_requires()
1476 b = this->get_bucket( h &= m ); in __TBB_requires()
1481 iterator lower(*this, h, b, n), upper(lower); in __TBB_requires()
1488 if( this->my_mask.load(std::memory_order_relaxed) == mask ) { // optimized version in __TBB_requires()
1489 this->reserve(source.my_size.load(std::memory_order_relaxed)); // TODO: load_factor? in __TBB_requires()
1494 else { dst = this->get_bucket( k ); src = source.get_bucket( k ); } in __TBB_requires()
1502 this->add_to_bucket( dst, node_ptr); in __TBB_requires()
1503 this->my_size.fetch_add(1, std::memory_order_relaxed); in __TBB_requires()
1512 this->reserve(reserve_size); // TODO: load_factor? in __TBB_requires()
1513 hashcode_type m = this->my_mask.load(std::memory_order_relaxed); in __TBB_requires()
1516 bucket *b = this->get_bucket( h & m ); in __TBB_requires()
1519 this->add_to_bucket( b, node_ptr ); in __TBB_requires()
1520 ++this->my_size; // TODO: replace by non-atomic op in __TBB_requires()
1527 this->internal_move(std::move(other)); in __TBB_requires()
1534 this->internal_move(std::move(other)); in __TBB_requires()
1540 this->clear(); in __TBB_requires()
1548 this->internal_move(std::move(other)); in __TBB_requires()
1552 if (this->my_allocator == other.my_allocator) { in __TBB_requires()
1553 this->internal_move(std::move(other)); in __TBB_requires()
1562 this->internal_swap_content(other); in __TBB_requires()
1566 __TBB_ASSERT(this->my_allocator == other.my_allocator, nullptr); in __TBB_requires()
1567 this->internal_swap_content(other); in __TBB_requires()
1575 hashcode_type m = this->my_mask.load(std::memory_order_acquire); in __TBB_requires()
1579 bucket *b = this->get_bucket( h & m ); in __TBB_requires()
1586 … const_cast<concurrent_hash_map*>(this)->rehash_bucket( b, h & m ); //recursive rehashing in __TBB_requires()
1594 else if( this->check_mask_race( h, m ) ) in __TBB_requires()