@@ -147,9 +147,9 @@ class priority_task_worker_executor : public task_executor
147147// / \brief Create task executor with \c Priority for \c priority_multiqueue_task_worker.
148148template <task_priority Priority, concurrent_queue_policy... QueuePolicies>
149149priority_task_worker_executor<Priority, QueuePolicies...>
150- make_priority_task_worker_executor (priority_task_worker<QueuePolicies...>& worker)
150+ make_priority_task_worker_executor (priority_task_worker<QueuePolicies...>& worker, bool report_on_failure )
151151{
152- return priority_task_worker_executor<Priority, QueuePolicies...>(worker);
152+ return priority_task_worker_executor<Priority, QueuePolicies...>(worker, report_on_failure );
153153}
154154
155155// / \brief Create general task executor pointer with \c Priority for \c priority_multiqueue_task_worker.
@@ -164,14 +164,15 @@ namespace detail {
164164template <typename Func, concurrent_queue_policy... QueuePolicies, size_t ... Is>
165165void visit_executor (priority_task_worker<QueuePolicies...>& w,
166166 task_priority priority,
167+ bool report_on_failure,
167168 const Func& func,
168169 std::index_sequence<Is...> /* unused*/ )
169170{
170171 const size_t idx = detail::enqueue_priority_to_queue_index (priority, sizeof ...(QueuePolicies));
171- (void )std::initializer_list<int >{[idx, &w, &func]() {
172+ (void )std::initializer_list<int >{[idx, &w, &func, report_on_failure ]() {
172173 if (idx == Is) {
173- func (
174- make_priority_task_worker_executor< detail::queue_index_to_enqueue_priority (Is, sizeof ...(QueuePolicies))>(w ));
174+ func (make_priority_task_worker_executor< detail::queue_index_to_enqueue_priority (Is, sizeof ...(QueuePolicies))>(
175+ w, report_on_failure ));
175176 }
176177 return 0 ;
177178 }()...};
@@ -181,9 +182,13 @@ void visit_executor(priority_task_worker<QueuePolicies...>& w,
181182
182183// / \brief Create general task executor pointer with \c Priority for \c priority_multiqueue_task_worker.
183184template <typename Func, concurrent_queue_policy... QueuePolicies>
184- void visit_executor (priority_task_worker<QueuePolicies...>& worker, task_priority priority, const Func& func)
185+ void visit_executor (priority_task_worker<QueuePolicies...>& worker,
186+ task_priority priority,
187+ bool report_on_failure,
188+ const Func& func)
185189{
186- detail::visit_executor (worker, priority, func, std::make_index_sequence<sizeof ...(QueuePolicies)>{});
190+ detail::visit_executor (
191+ worker, priority, report_on_failure, func, std::make_index_sequence<sizeof ...(QueuePolicies)>{});
187192}
188193
189194// / \brief Create general task executor pointer with \c Priority for \c priority_multiqueue_task_worker.
0 commit comments