|
|
Go to the documentation of this file.
9 #include "tbb/task_arena.h"
12 template <
typename T,
typename U>
14 typename T::TransitionInfoType&
info,
16 typename T::Context
const* topContext,
18 bool cleaningUpAfterException =
false) {
27 tbb::task_arena localArena{tbb::this_task_arena::max_concurrency()};
28 std::exception_ptr exceptPtr = localArena.execute([&]() {
52 std::shared_ptr<ProcessConfiguration> processConfiguration)
55 std::vector<std::string> shouldBeUsedLabels;
56 std::set<std::string> unscheduledLabels;
58 for (
auto&
pset : psets) {
61 pset, preg, &preallocConfig, processConfiguration,
label, unscheduledLabels, shouldBeUsedLabels);
63 if (!unscheduledLabels.empty()) {
80 processOneOccurrence<OccurrenceTraits<RunPrincipal, BranchActionGlobalBegin> >(
82 processOneOccurrence<OccurrenceTraits<RunPrincipal, BranchActionStreamBegin> >(
91 processOneOccurrence<OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalBegin> >(
93 processOneOccurrence<OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamBegin> >(
102 processOneOccurrence<OccurrenceTraits<RunPrincipal, BranchActionStreamEnd> >(
104 processOneOccurrence<OccurrenceTraits<RunPrincipal, BranchActionGlobalEnd> >(
113 processOneOccurrence<OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamEnd> >(
115 processOneOccurrence<OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalEnd> >(
void endStream(edm::StreamID iID, StreamContext &sContext)
void setupPileUpEvent(EventPrincipal &ep, const EventSetupImpl &setup, StreamContext &sContext)
void addToUnscheduledWorkers(ParameterSet &pset, ProductRegistry &preg, PreallocationConfiguration const *prealloc, std::shared_ptr< ProcessConfiguration > processConfiguration, std::string label, std::set< std::string > &unscheduledLabels, std::vector< std::string > &shouldBeUsedLabels)
auto wrap(F iFunc) -> decltype(iFunc())
AllWorkers const & allWorkers() const
void beginStream(edm::StreamID iID, StreamContext &sContext)
void beginJob(ProductRegistry const &iRegistry, eventsetup::ESRecordsToProxyIndices const &)
void endLuminosityBlock(LuminosityBlockPrincipal &lumi, const edm::EventSetupImpl &setup, ModuleCallingContext const *, StreamContext &sContext)
void beginJob(ProductRegistry const &iRegistry, eventsetup::ESRecordsToProxyIndices const &)
void beginStream(StreamID iID, StreamContext &streamContext)
void endRun(RunPrincipal &run, const edm::EventSetupImpl &setup, ModuleCallingContext const *, StreamContext &sContext)
std::list< std::string > const & context() const
StreamID const & streamID() const
void setupOnDemandSystem(EventTransitionInfo const &)
ServiceToken presentToken() const
static StreamID invalidStreamID()
void addContextAndPrintException(char const *context, cms::Exception &ex, bool disablePrint)
void beginRun(RunPrincipal &run, const edm::EventSetupImpl &setup, ModuleCallingContext const *, StreamContext &sContext)
static ServiceRegistry & instance()
WorkerManager workerManager_
SecondaryEventProvider(std::vector< ParameterSet > &psets, ProductRegistry &pregistry, std::shared_ptr< ProcessConfiguration > processConfiguration)
void beginLuminosityBlock(LuminosityBlockPrincipal &lumi, const edm::EventSetupImpl &setup, ModuleCallingContext const *, StreamContext &sContext)
void setupResolvers(Principal &principal)
void endStream(StreamID iID, StreamContext &streamContext)
void processOneOccurrenceAsync(WaitingTaskHolder, typename T::TransitionInfoType &, ServiceToken const &, StreamID, typename T::Context const *topContext, U const *context)
std::exception_ptr syncWait(F &&iFunc)
void setUnscheduledProducts(std::set< std::string > const &unscheduledLabels)