}
std::vector<event_impl::ptr> tmp_events(events);
+ std::vector<event_impl::ptr> all_events;
// TODO - split should be handle in kernel selector by providing multiple kernels.
auto split = get_split();
auto event = _kernels[k].run(net_id, _kernel_data.kernels[k], tmp_events);
new_events.push_back(event);
+ all_events.push_back(event);
}
tmp_events = new_events;
}
- bool group_events = split > 1 ? true : false;
- return aggregate_events(tmp_events, net_id, group_events);
+ if ((all_events.size() == 0) && (tmp_events.size() > 0))
+ return aggregate_events(tmp_events, net_id);
+
+ bool group_events = (all_events.size() > 1);
+ return aggregate_events(all_events, net_id, group_events);
}
};