1 #ifndef FWCore_Framework_globalTransitionAsync_h
2 #define FWCore_Framework_globalTransitionAsync_h
48 template <
typename Traits>
58 bool cleaningUpAfterException) {
65 bool cleaningUpAfterException) {
72 bool cleaningUpAfterException) {
76 template <
typename Traits>
79 typename Traits::TransitionInfoType& transitionInfo,
81 std::vector<SubProcess>& iSubProcesses) {
86 [&iSubProcesses, iWait,
info = transitionInfo](std::exception_ptr
const* iPtr)
mutable {
90 tbb::task::allocate_root(),
91 [iWait, excpt](std::exception_ptr
const*)
mutable { iWait.
doneWaiting(excpt); });
93 for (
auto& subProcess : iSubProcesses) {
94 subProcessDoGlobalBeginTransitionAsync<Traits>(
h, subProcess,
info);
97 for (
auto& subProcess : iSubProcesses) {
98 subProcessDoGlobalBeginTransitionAsync<Traits>(iWait, subProcess,
info);
107 template <
typename Traits>
110 typename Traits::TransitionInfoType& transitionInfo,
112 std::vector<SubProcess>& iSubProcesses,
113 bool cleaningUpAfterException) {
118 [&iSubProcesses, iWait,
info = transitionInfo, cleaningUpAfterException](
119 std::exception_ptr
const* iPtr)
mutable {
123 tbb::task::allocate_root(),
124 [iWait, excpt](std::exception_ptr
const*)
mutable { iWait.
doneWaiting(excpt); });
126 for (
auto& subProcess : iSubProcesses) {
130 for (
auto& subProcess : iSubProcesses) {