1 #ifndef FWCore_Framework_streamTransitionAsync_h
2 #define FWCore_Framework_streamTransitionAsync_h
50 bool cleaningUpAfterException) {
58 bool cleaningUpAfterException) {
62 template <
typename Traits>
65 unsigned int iStreamIndex,
66 typename Traits::TransitionInfoType& transitionInfo,
68 std::vector<SubProcess>& iSubProcesses) {
73 [&iSubProcesses, iWait, iStreamIndex,
info = transitionInfo](std::exception_ptr
const* iPtr)
mutable {
79 for (
auto& subProcess : iSubProcesses) {
83 for (
auto& subProcess : iSubProcesses) {
93 template <
typename Traits>
96 unsigned int iNStreams,
97 typename Traits::TransitionInfoType& transitionInfo,
99 std::vector<SubProcess>& iSubProcesses) {
100 for (
unsigned int i = 0;
i < iNStreams; ++
i) {
101 beginStreamTransitionAsync<Traits>(iWait, iSchedule,
i, transitionInfo,
token, iSubProcesses);
105 template <
typename Traits>
108 unsigned int iStreamIndex,
109 typename Traits::TransitionInfoType& transitionInfo,
111 std::vector<SubProcess>& iSubProcesses,
112 bool cleaningUpAfterException) {
118 make_waiting_task([&iSubProcesses, iWait, iStreamIndex,
info = transitionInfo, cleaningUpAfterException](
119 std::exception_ptr
const* iPtr)
mutable {
125 for (
auto& subProcess : iSubProcesses) {
129 for (
auto& subProcess : iSubProcesses) {
139 template <
typename Traits>
142 unsigned int iNStreams,
143 typename Traits::TransitionInfoType& transitionInfo,
145 std::vector<SubProcess>& iSubProcesses,
146 bool cleaningUpAfterException) {
147 for (
unsigned int i = 0;
i < iNStreams; ++
i) {
148 endStreamTransitionAsync<Traits>(
149 iWait, iSchedule,
i, transitionInfo, iToken, iSubProcesses, cleaningUpAfterException);