2174 _Index_type _Current_iteration = _Worker_range._M_current_iteration;
2175 _Index_type _Scaled_index = _Current_iteration *
_M_step;
2179 if (_Worker_range._Number_of_iterations() == 1)
2188 structured_task_group _Helper_group;
2198 _Helper_group.run(_Helper_task);
2207 for (_Index_type _I = _Current_iteration; _I < _Worker_range._M_last_iteration; (_I++, _Worker_range._M_current_iteration =_I, _Scaled_index +=
_M_step))
2209 if (_Worker._Is_beacon_signaled())
2215 if (_Worker._Is_done() || _Worker._Verify_beacon_cancellation())
2221 if (_Worker._Is_helper_registered())
2226 if (_Worker._Send_range(&_Worker_range))
2232 new(_Helper_subtask) task_handle<_Parallel_chunk_helper>
2237 _Helper_group.run(*_Helper_subtask);
2242 _Worker._Enable_intrusive_steal(&_Worker_range);
2248 _Worker._Disable_intrusive_steal();
2252 _Worker._Set_done();
2255 _Helper_group.wait();
2259 _Worker._Set_tree_done();
Definition: concrt.h:1100
static void __cdecl _Invoke(const _Random_iterator &_First, _Index_type &_Index, const _Function &_Func)
Definition: ppl.h:1784
_Parallel_chunk_helper(_Index_type, const _Random_iterator &_First, _Index_type _First_iteration, _Index_type _Last_iteration, const _Index_type &_Step, const _Function &_Func, const _Partitioner &, _Worker_proxy< _Index_type > *const _Parent_data=NULL)
Definition: ppl.h:2137
const _Function & _M_function
Definition: ppl.h:2266
#define _malloca(size)
Definition: malloc.h:127
size_t _GetAllocationSize() const
Definition: concrt.h:1104
const _Index_type _M_last_iteration
Definition: ppl.h:2269
_ElemType * _AddRawMallocaNode(void *_MallocaRet)
Definition: concrt.h:1124
_Worker_proxy< _Index_type > *const _M_parent_worker
Definition: ppl.h:2271
const _Index_type _M_first_iteration
Definition: ppl.h:2268
const _Random_iterator & _M_first
Definition: ppl.h:2264
const _Index_type & _M_step
Definition: ppl.h:2265
#define NULL
Definition: corecrt.h:158