Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the documentation of this file.
17 #ifndef _TBB_scheduler_utility_H
18 #define _TBB_scheduler_utility_H
55 template<
typename T,
size_t max_segments = 16>
66 __TBB_ASSERT ( initial_segment && segment_size,
"Nonempty initial segment must be supplied");
size_t m_cur_segment_size
Capacity of m_cur_segment.
Vector that grows without reallocations, and stores items in the reverse order.
T * m_segments[max_segments]
Array of segments (has fixed size specified by the second template parameter)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
fast_reverse_vector(T *initial_segment, size_t segment_size)
task that does nothing. Useful for synchronization.
size_t m_num_segments
Number of segments (the size of m_segments)
Memory prefix to a task object.
internal::task_prefix & prefix(internal::version_tag *=NULL) const
Get reference to corresponding task_prefix.
auto_empty_task(__TBB_CONTEXT_ARG(generic_scheduler *s, task_group_context *context))
@ small_local_task
Bitwise-OR of local_task and small_task.
size_t m_pos
Insertion position in m_cur_segment.
generic_scheduler * my_scheduler
Smart holder for the empty task class with automatic destruction.
T * m_cur_segment
The current (not completely filled) segment.
void const char const char int ITT_FORMAT __itt_group_sync s
Base class for user-defined tasks.
void push_back(const T &val)
Work stealing task scheduler.
Used to form groups of tasks.
void __TBB_EXPORTED_FUNC NFS_Free(void *)
Free memory allocated by NFS_Allocate.
void copy_memory(T *dst) const
Copies the contents of the vector into the dst array.
size_t m_size
Number of items in the segments in m_segments.
void free_task(task &t)
Put task on free list.
void *__TBB_EXPORTED_FUNC NFS_Allocate(size_t n_element, size_t element_size, void *hint)
Allocate memory on cache/sector line boundary.
#define __TBB_CONTEXT_ARG(arg1, context)
Copyright © 2005-2020 Intel Corporation. All Rights Reserved.
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
* Other names and brands may be claimed as the property of others.