sample_scratch_data,
sample_copy_data);
auto tbb_item_stream_filter = tbb::make_filter<void, ItemType *>(
- tbb::filter::serial, [&](tbb::flow_control &fc) -> ItemType * {
+# ifdef DEAL_II_TBB_WITH_ONEAPI
+ tbb::filter_mode::serial_in_order,
+# else
+ tbb::filter::serial,
+# endif
+ [&](tbb::flow_control &fc) -> ItemType * {
if (const auto item = iterator_range_to_item_stream.get_item())
return item;
else
// The second stage is the one that does the actual work. This is the
// stage that runs in parallel
auto tbb_worker_filter = tbb::make_filter<ItemType *, ItemType *>(
+# ifdef DEAL_II_TBB_WITH_ONEAPI
+ tbb::filter_mode::parallel,
+# else
tbb::filter::parallel,
+# endif
[worker =
std::function<void(const Iterator &, ScratchData &, CopyData &)>(
worker),
// The last stage is the one that copies data from the CopyData objects
// to the final destination. This stage runs sequentially again.
auto tbb_copier_filter = tbb::make_filter<ItemType *, void>(
+# ifdef DEAL_II_TBB_WITH_ONEAPI
+ tbb::filter_mode::serial_in_order,
+# else
tbb::filter::serial,
+# endif
[copier = std::function<void(const CopyData &)>(copier)](
ItemType *current_item) {
if (copier)