Skip to content

Commit 7229f7f

Browse files
committed
emit ModulesInitializationFinalized signals
1 parent 6d1850c commit 7229f7f

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

FWCore/Framework/interface/Schedule.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
#include "FWCore/Utilities/interface/get_underlying_safe.h"
8383
#include "FWCore/Utilities/interface/propagate_const.h"
8484
#include "FWCore/Utilities/interface/Transition.h"
85+
#include "FWCore/Utilities/interface/Signal.h"
8586

8687
#include <array>
8788
#include <map>
@@ -323,6 +324,8 @@ namespace edm {
323324

324325
std::vector<std::string> const* pathNames_;
325326
std::vector<std::string> const* endPathNames_;
327+
edm::signalslot::Signal<void()> preModulesInitializationFinalizedSignal_;
328+
edm::signalslot::Signal<void()> postModulesInitializationFinalizedSignal_;
326329
bool wantSummary_;
327330
};
328331

FWCore/Framework/src/Schedule.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ namespace edm {
237237
pathNames_(&tns.getTrigPaths()),
238238
endPathNames_(&tns.getEndPaths()),
239239
wantSummary_(tns.wantSummary()) {
240+
preModulesInitializationFinalizedSignal_.connect(std::cref(areg->preModulesInitializationFinalizedSignal_));
241+
postModulesInitializationFinalizedSignal_.connect(std::cref(areg->postModulesInitializationFinalizedSignal_));
240242
ScheduleBuilder builder(
241243
*moduleRegistry_, proc_pset, *pathNames_, *endPathNames_, prealloc, preg, *areg, processConfiguration);
242244
resultsInserter_ = std::move(builder.resultsInserter_);
@@ -900,6 +902,9 @@ namespace edm {
900902
eventsetup::ESRecordsToProductResolverIndices const& iESIndices,
901903
ProcessBlockHelperBase const& processBlockHelperBase,
902904
std::string const& iProcessName) {
905+
preModulesInitializationFinalizedSignal_();
906+
auto post = [this](void*) { postModulesInitializationFinalizedSignal_(); };
907+
std::unique_ptr<void, decltype(post)> const postGuard(this, post);
903908
finishModulesInitialization(*moduleRegistry_, iRegistry, iESIndices, processBlockHelperBase, iProcessName);
904909
globalSchedule_->beginJob(*moduleRegistry_);
905910
}

0 commit comments

Comments
 (0)