1 #ifndef FWCore_Framework_streamTransitionAsync_h 2 #define FWCore_Framework_streamTransitionAsync_h 34 class LuminosityBlockPrincipal;
55 template<
typename Traits,
typename P,
typename SC >
58 unsigned int iStreamIndex,
67 auto subs =
make_waiting_task(tbb::task::allocate_root(), [&iSubProcesses, iWait,iStreamIndex,&iPrincipal,iTS](std::exception_ptr
const* iPtr)
mutable {
70 auto delayError =
make_waiting_task(tbb::task::allocate_root(), [iWait,excpt](std::exception_ptr
const* )
mutable {
74 for(
auto& subProcess: iSubProcesses){
79 for(
auto& subProcess: iSubProcesses){
90 template<
typename Traits,
typename P,
typename SC >
93 unsigned int iNStreams,
101 for(
unsigned int i=0;
i<iNStreams;++
i) {
102 beginStreamTransitionAsync<Traits>(
WaitingTaskHolder(iWait), iSchedule,
i,iPrincipal,iTS,iES,token, iSubProcesses);
106 template<
typename Traits,
typename P,
typename SC >
109 unsigned int iStreamIndex,
115 bool cleaningUpAfterException)
121 auto subs =
make_waiting_task(tbb::task::allocate_root(), [&iSubProcesses, iWait,iStreamIndex,&iPrincipal,iTS,cleaningUpAfterException](std::exception_ptr
const* iPtr)
mutable {
124 auto delayError =
make_waiting_task(tbb::task::allocate_root(), [iWait,excpt](std::exception_ptr
const* )
mutable {
128 for(
auto& subProcess: iSubProcesses) {
132 for(
auto& subProcess: iSubProcesses) {
141 template<
typename Traits,
typename P,
typename SC >
144 unsigned int iNStreams,
150 bool cleaningUpAfterException)
152 for(
unsigned int i=0;
i<iNStreams;++
i) {
153 endStreamTransitionAsync<Traits>(iWait,
155 iPrincipal,iTS,iES, iToken,
156 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 beginStreamsTransitionAsync(WaitingTask *iWait, Schedule &iSchedule, unsigned int iNStreams, P &iPrincipal, IOVSyncValue const &iTS, EventSetup const &iES, ServiceToken const &token, SC &iSubProcesses)
void endStreamTransitionAsync(WaitingTaskHolder iWait, Schedule &iSchedule, unsigned int iStreamIndex, P &iPrincipal, IOVSyncValue const &iTS, EventSetup const &iES, ServiceToken const &token, SC &iSubProcesses, bool cleaningUpAfterException)
void doneWaiting(std::exception_ptr iExcept)
void beginStreamTransitionAsync(WaitingTaskHolder iWait, Schedule &iSchedule, unsigned int iStreamIndex, P &iPrincipal, IOVSyncValue const &iTS, EventSetup const &iES, ServiceToken const &token, SC &iSubProcesses)
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 processOneStreamAsync(WaitingTaskHolder iTask, unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetup const &eventSetup, ServiceToken const &token, bool cleaningUpAfterException=false)
void doStreamBeginLuminosityBlockAsync(WaitingTaskHolder iHolder, unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
void endStreamsTransitionAsync(WaitingTaskHolder iWait, Schedule &iSchedule, unsigned int iNStreams, P &iPrincipal, IOVSyncValue const &iTS, EventSetup const &iES, ServiceToken const &iToken, SC &iSubProcesses, bool cleaningUpAfterException)
FunctorWaitingTask< F > * make_waiting_task(ALLOC &&iAlloc, F f)
std::pair< OmniClusterRef, TrackingParticleRef > P