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 | |
![]() | |
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().