1 #ifndef FWCore_Framework_streamTransitionAsync_h 2 #define FWCore_Framework_streamTransitionAsync_h 34 class LuminosityBlockPrincipal;
59 bool cleaningUpAfterException) {
68 bool cleaningUpAfterException) {
72 template <
typename Traits,
typename P,
typename SC>
75 unsigned int iStreamIndex,
85 tbb::task::allocate_root(),
86 [&iSubProcesses, iWait, iStreamIndex, &iPrincipal, iTS](std::exception_ptr
const* iPtr)
mutable {
91 [iWait, excpt](std::exception_ptr
const*)
mutable { iWait.
doneWaiting(excpt); });
93 for (
auto& subProcess : iSubProcesses) {
97 for (
auto& subProcess : iSubProcesses) {
107 template <
typename Traits,
typename P,
typename SC>
110 unsigned int iNStreams,
117 for (
unsigned int i = 0;
i < iNStreams; ++
i) {
118 beginStreamTransitionAsync<Traits>(
123 template <
typename Traits,
typename P,
typename SC>
126 unsigned int iStreamIndex,
132 bool cleaningUpAfterException) {
139 [&iSubProcesses, iWait, iStreamIndex, &iPrincipal, iTS, cleaningUpAfterException](
140 std::exception_ptr
const* iPtr)
mutable {
144 tbb::task::allocate_root(),
145 [iWait, excpt](std::exception_ptr
const*)
mutable { iWait.
doneWaiting(excpt); });
147 for (
auto& subProcess : iSubProcesses) {
149 h, subProcess, iStreamIndex, iPrincipal, iTS, cleaningUpAfterException);
152 for (
auto& subProcess : iSubProcesses) {
154 iWait, subProcess, iStreamIndex, iPrincipal, iTS, cleaningUpAfterException);
160 WaitingTaskHolder(subs), iStreamIndex, iPrincipal, iES, token, cleaningUpAfterException);
163 template <
typename Traits,
typename P,
typename SC>
166 unsigned int iNStreams,
172 bool cleaningUpAfterException) {
173 for (
unsigned int i = 0;
i < iNStreams; ++
i) {
174 endStreamTransitionAsync<Traits>(
175 iWait, iSchedule,
i, iPrincipal, iTS, iES, iToken, iSubProcesses, cleaningUpAfterException);
void doStreamBeginRunAsync(WaitingTaskHolder iHolder, unsigned int iID, RunPrincipal const &principal, IOVSyncValue const &ts)
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
void doStreamEndRunAsync(WaitingTaskHolder iHolder, unsigned int iID, RunPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
void doStreamEndLuminosityBlockAsync(WaitingTaskHolder iHolder, unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
void endStreamsTransitionAsync(WaitingTaskHolder iWait, Schedule &iSchedule, unsigned int iNStreams, P &iPrincipal, IOVSyncValue const &iTS, EventSetupImpl const &iES, ServiceToken const &iToken, SC &iSubProcesses, bool cleaningUpAfterException)
void doneWaiting(std::exception_ptr iExcept)
void endStreamTransitionAsync(WaitingTaskHolder iWait, Schedule &iSchedule, unsigned int iStreamIndex, P &iPrincipal, IOVSyncValue const &iTS, EventSetupImpl const &iES, ServiceToken const &token, SC &iSubProcesses, bool cleaningUpAfterException)
void processOneStreamAsync(WaitingTaskHolder iTask, unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetupImpl const &eventSetup, ServiceToken const &token, bool cleaningUpAfterException=false)
void subProcessDoStreamEndTransitionAsync(WaitingTaskHolder iHolder, SubProcess &iSubProcess, unsigned int i, LuminosityBlockPrincipal &iPrincipal, IOVSyncValue const &iTS, bool cleaningUpAfterException)
void subProcessDoStreamBeginTransitionAsync(WaitingTaskHolder iHolder, SubProcess &iSubProcess, unsigned int i, LuminosityBlockPrincipal &iPrincipal, IOVSyncValue const &iTS)
void beginStreamsTransitionAsync(WaitingTask *iWait, Schedule &iSchedule, unsigned int iNStreams, P &iPrincipal, IOVSyncValue const &iTS, EventSetupImpl const &iES, ServiceToken const &token, SC &iSubProcesses)
void doStreamBeginLuminosityBlockAsync(WaitingTaskHolder iHolder, unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
FunctorWaitingTask< F > * make_waiting_task(ALLOC &&iAlloc, F f)
std::pair< OmniClusterRef, TrackingParticleRef > P
void beginStreamTransitionAsync(WaitingTaskHolder iWait, Schedule &iSchedule, unsigned int iStreamIndex, P &iPrincipal, IOVSyncValue const &iTS, EventSetupImpl const &iES, ServiceToken const &token, SC &iSubProcesses)