| 
    Intel(R) Threading Building Blocks Doxygen Documentation
    version 4.2.3
    
   | 
 
Classes | |
| struct | destroy_body | 
| struct | init_body | 
| TODO: turn into lambda functions when available.  More... | |
| struct | safe_init_body | 
| struct | segment_not_used_predicate | 
Public Member Functions | |
| helper (segment_t *segments, size_type fb, size_type esize, size_type index, size_type s, size_type f) throw () | |
| void | first_segment () throw () | 
| void | next_segment () throw () | 
| template<typename F > | |
| size_type | apply (const F &func) | 
| segment_value_t | get_segment_value (size_type index, bool wait) | 
| ~helper () | |
| void | cleanup () | 
| Out of line code to assists destructor in infrequent cases.  More... | |
Public Attributes | |
| segment_t * | table | 
| size_type | first_block | 
| size_type | k | 
| size_type | sz | 
| size_type | start | 
| size_type | finish | 
| size_type | element_size | 
Static Public Attributes | |
| static const size_type | page_size = 4096 | 
| memory page size  More... | |
Additional Inherited Members | |
  Private Member Functions inherited from tbb::internal::no_assign | |
| void | operator= (const no_assign &)=delete | 
| no_assign (const no_assign &)=default | |
| no_assign ()=default | |
Definition at line 40 of file concurrent_vector.cpp.
      
  | 
  inline | ||||||||||||||||||||||||||||||||||||
Definition at line 124 of file concurrent_vector.cpp.
      
  | 
  inline | 
Definition at line 160 of file concurrent_vector.cpp.
References cleanup(), finish, and sz.
      
  | 
  inlinestatic | 
Definition at line 104 of file concurrent_vector.cpp.
References tbb::acquire, element_size, enable_segment(), tbb::internal::concurrent_vector_base_v3::enforce_segment_allocated, ITT_NOTIFY, tbb::internal::concurrent_vector_base_v3::my_segment, tbb::relaxed, s, and tbb::internal::spin_wait_while().
Referenced by tbb::internal::concurrent_vector_base_v3::internal_grow(), and tbb::internal::concurrent_vector_base_v3::internal_push_back().
      
  | 
  inlinestatic | 
Definition at line 75 of file concurrent_vector.cpp.
References tbb::internal::eid_bad_alloc, tbb::internal::throw_exception(), and tbb::internal::concurrent_vector_base_v3::vector_allocator_ptr.
Referenced by tbb::internal::concurrent_vector_base_v3::internal_compact().
      
  | 
  inline | 
Definition at line 141 of file concurrent_vector.cpp.
References element_size, finish, first_segment(), k, next_segment(), start, sz, and table.
Referenced by tbb::internal::concurrent_vector_base_v3::internal_clear(), tbb::internal::concurrent_vector_base_v3::internal_compact(), tbb::internal::concurrent_vector_base_v3::internal_grow(), and tbb::internal::concurrent_vector_base_v3::internal_resize().
      
  | 
  inlinestatic | 
assign first segment size. k - is index of last segment to be allocated, not a count of segments
Definition at line 60 of file concurrent_vector.cpp.
References k, and tbb::internal::concurrent_vector_base_v3::my_first_block.
Referenced by tbb::internal::concurrent_vector_base_v3::internal_assign(), tbb::internal::concurrent_vector_base_v3::internal_copy(), tbb::internal::concurrent_vector_base_v3::internal_grow(), and tbb::internal::concurrent_vector_base_v3::internal_reserve().
| void tbb::internal::concurrent_vector_base_v3::helper::cleanup | ( | ) | 
Out of line code to assists destructor in infrequent cases.
Definition at line 281 of file concurrent_vector.cpp.
References __TBB_ASSERT, tbb::internal::concurrent_vector_base_v3::segment_t::load(), tbb::internal::concurrent_vector_base_v3::segment_value_t::pointer(), tbb::relaxed, tbb::internal::concurrent_vector_base_v3::segment_base(), and tbb::internal::concurrent_vector_base_v3::segment_index_of().
Referenced by ~helper().
      
  | 
  static | 
Definition at line 222 of file concurrent_vector.cpp.
References __TBB_ASSERT, tbb::acquire, tbb::internal::concurrent_vector_base_v3::default_initial_segments, tbb::internal::concurrent_vector_base_v3::enforce_segment_allocated, ITT_NOTIFY, tbb::internal::concurrent_vector_base_v3::my_first_block, tbb::internal::concurrent_vector_base_v3::my_segment, tbb::internal::concurrent_vector_base_v3::segment_value_t::pointer(), s, tbb::internal::concurrent_vector_base_v3::segment_base(), tbb::internal::concurrent_vector_base_v3::segment_size(), tbb::internal::spin_wait_while(), and tbb::internal::spin_wait_while_eq().
Referenced by acquire_segment(), tbb::internal::concurrent_vector_base_v3::internal_assign(), tbb::internal::concurrent_vector_base_v3::internal_copy(), and tbb::internal::concurrent_vector_base_v3::internal_reserve().
      
  | 
  static | 
Definition at line 196 of file concurrent_vector.cpp.
References __TBB_ASSERT, __TBB_STATIC_ASSERT, ITT_NOTIFY, tbb::internal::concurrent_vector_base_v3::segment_t::load(), tbb::internal::concurrent_vector_base_v3::my_segment, tbb::internal::concurrent_vector_base_v3::my_storage, tbb::internal::NFS_Allocate(), tbb::internal::NFS_Free(), tbb::internal::atomic_backoff::pause(), tbb::internal::concurrent_vector_base_v3::pointers_per_long_table, tbb::internal::concurrent_vector_base_v3::pointers_per_short_table, tbb::relaxed, tbb::internal::concurrent_vector_base_v3::segment_base(), tbb::internal::concurrent_vector_base_v3::segment_size(), and start.
Referenced by extend_table_if_necessary().
      
  | 
  inlinestatic | 
Definition at line 92 of file concurrent_vector.cpp.
References extend_segment_table(), k, tbb::internal::concurrent_vector_base_v3::my_segment, tbb::internal::concurrent_vector_base_v3::my_storage, tbb::internal::concurrent_vector_base_v3::pointers_per_short_table, and start.
Referenced by tbb::internal::concurrent_vector_base_v3::internal_assign(), tbb::internal::concurrent_vector_base_v3::internal_copy(), tbb::internal::concurrent_vector_base_v3::internal_grow(), tbb::internal::concurrent_vector_base_v3::internal_push_back(), and tbb::internal::concurrent_vector_base_v3::internal_reserve().
      
  | 
  inlinestatic | 
Definition at line 49 of file concurrent_vector.cpp.
References k, tbb::internal::concurrent_vector_base_v3::my_segment, tbb::internal::concurrent_vector_base_v3::my_storage, tbb::internal::concurrent_vector_base_v3::pointers_per_long_table, tbb::internal::concurrent_vector_base_v3::pointers_per_short_table, and s.
Referenced by tbb::internal::concurrent_vector_base_v3::internal_capacity(), tbb::internal::concurrent_vector_base_v3::internal_clear(), tbb::internal::concurrent_vector_base_v3::internal_compact(), and tbb::internal::concurrent_vector_base_v3::internal_reserve().
      
  | 
  inline | |||||||||||||
Definition at line 126 of file concurrent_vector.cpp.
References __TBB_ASSERT, finish, first_block, k, tbb::internal::concurrent_vector_base_v3::segment_base(), tbb::internal::concurrent_vector_base_v3::segment_size(), start, and sz.
Referenced by apply().
      
  | 
  inline | 
Definition at line 151 of file concurrent_vector.cpp.
References tbb::acquire, ITT_NOTIFY, tbb::relaxed, s, tbb::internal::spin_wait_while(), and table.
      
  | 
  inlinestatic | 
Definition at line 45 of file concurrent_vector.cpp.
References page_size, and size.
Referenced by tbb::internal::concurrent_vector_base_v3::internal_compact().
      
  | 
  inline | |||||||||||||
Definition at line 135 of file concurrent_vector.cpp.
References finish, first_block, k, tbb::internal::concurrent_vector_base_v3::segment_size(), start, and sz.
Referenced by apply().
      
  | 
  inlinestatic | 
Publish segment so other threads can see it.
Definition at line 83 of file concurrent_vector.cpp.
References ITT_NOTIFY, tbb::release, s, and sync_releasing.
| size_type tbb::internal::concurrent_vector_base_v3::helper::element_size | 
Definition at line 123 of file concurrent_vector.cpp.
Referenced by acquire_segment(), and apply().
| size_type tbb::internal::concurrent_vector_base_v3::helper::finish | 
Definition at line 123 of file concurrent_vector.cpp.
Referenced by apply(), first_segment(), next_segment(), and ~helper().
| size_type tbb::internal::concurrent_vector_base_v3::helper::first_block | 
Definition at line 123 of file concurrent_vector.cpp.
Referenced by first_segment(), tbb::internal::concurrent_vector_base_v3::internal_grow(), and next_segment().
| size_type tbb::internal::concurrent_vector_base_v3::helper::k | 
Definition at line 123 of file concurrent_vector.cpp.
Referenced by apply(), assign_first_segment_if_necessary(), extend_table_if_necessary(), find_segment_end(), first_segment(), and next_segment().
      
  | 
  static | 
memory page size
Definition at line 43 of file concurrent_vector.cpp.
Referenced by incompact_predicate().
| size_type tbb::internal::concurrent_vector_base_v3::helper::start | 
Definition at line 123 of file concurrent_vector.cpp.
Referenced by apply(), extend_segment_table(), extend_table_if_necessary(), first_segment(), and next_segment().
| size_type tbb::internal::concurrent_vector_base_v3::helper::sz | 
Definition at line 123 of file concurrent_vector.cpp.
Referenced by apply(), first_segment(), next_segment(), and ~helper().
| segment_t* tbb::internal::concurrent_vector_base_v3::helper::table | 
Definition at line 122 of file concurrent_vector.cpp.
Referenced by apply(), and get_segment_value().