Skip to content

Commit e21788c

Browse files
committed
Remove SubProcess from EventSetup code
1 parent e00eab5 commit e21788c

36 files changed

+282
-1630
lines changed

FWCore/Framework/bin/cmsRun.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,10 +272,6 @@ int main(int argc, const char* argv[]) {
272272
context = "Calling beginJob";
273273
proc->beginJob();
274274

275-
// EventSetupsController uses pointers to the ParameterSet
276-
// owned by ProcessDesc while it is dealing with sharing of
277-
// ESProducers. Therefore the ProcessDesc needs to be kept
278-
// alive until the beginJob transition has finished.
279275
processDesc.reset();
280276

281277
context =

FWCore/Framework/interface/ComponentFactory.h

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
// -*- C++ -*-
12
#ifndef Framework_ComponentFactory_h
23
#define Framework_ComponentFactory_h
3-
// -*- C++ -*-
44
//
55
// Package: Framework
66
// Class : ComponentFactory
77
//
8-
/**\class ComponentFactory ComponentFactory.h FWCore/Framework/interface/ComponentFactory.h
8+
/**\class edm::eventsetup::ComponentFactory
99
1010
Description: Factory for building the Factories for the various 'plug-in' components needed for the EventSetup
1111
@@ -22,7 +22,7 @@
2222
#include <string>
2323
#include <map>
2424
#include <memory>
25-
#include <exception>
25+
#include <sstream>
2626

2727
// user include files
2828
#include "FWCore/PluginManager/interface/PluginFactory.h"
@@ -40,23 +40,23 @@ namespace edm {
4040

4141
namespace eventsetup {
4242
class EventSetupProvider;
43-
class EventSetupsController;
4443

4544
template <typename T>
4645
class ComponentFactory {
4746
public:
4847
ComponentFactory() : makers_() {}
49-
//~ComponentFactory();
48+
ComponentFactory(const ComponentFactory&) = delete;
49+
ComponentFactory(ComponentFactory&&) = delete;
50+
ComponentFactory& operator=(ComponentFactory&&) = delete;
51+
const ComponentFactory& operator=(const ComponentFactory&) = delete;
5052

5153
typedef ComponentMakerBase<T> Maker;
5254
typedef std::map<std::string, std::shared_ptr<Maker const>> MakerMap;
5355
typedef typename T::base_type base_type;
5456
// ---------- const member functions ---------------------
55-
std::shared_ptr<base_type> addTo(EventSetupsController& esController,
56-
EventSetupProvider& iProvider,
57+
std::shared_ptr<base_type> addTo(EventSetupProvider& iProvider,
5758
edm::ParameterSet& iConfiguration,
58-
ModuleTypeResolverMaker const* resolverMaker,
59-
bool replaceExisting = false) const {
59+
ModuleTypeResolverMaker const* resolverMaker) const {
6060
std::string modtype = iConfiguration.template getParameter<std::string>("@module_type");
6161
//cerr << "Factory: module_type = " << modtype << endl;
6262
typename MakerMap::iterator it = makers_.find(modtype);
@@ -74,9 +74,8 @@ namespace edm {
7474
}
7575

7676
try {
77-
return convertException::wrap([&]() -> std::shared_ptr<base_type> {
78-
return maker->addTo(esController, iProvider, iConfiguration, replaceExisting);
79-
});
77+
return convertException::wrap(
78+
[&]() -> std::shared_ptr<base_type> { return maker->addTo(iProvider, iConfiguration); });
8079
} catch (cms::Exception& iException) {
8180
std::string edmtype = iConfiguration.template getParameter<std::string>("@module_edm_type");
8281
std::string label = iConfiguration.template getParameter<std::string>("@module_label");
@@ -94,10 +93,6 @@ namespace edm {
9493
// ---------- member functions ---------------------------
9594

9695
private:
97-
ComponentFactory(const ComponentFactory&); // stop default
98-
99-
const ComponentFactory& operator=(const ComponentFactory&); // stop default
100-
10196
// ---------- member data --------------------------------
10297
//Creating a new component is not done across threads
10398
CMS_SA_ALLOW mutable MakerMap makers_;

FWCore/Framework/interface/ComponentMaker.h

Lines changed: 12 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
// -*- C++ -*-
12
#ifndef Framework_ComponentMaker_h
23
#define Framework_ComponentMaker_h
3-
// -*- C++ -*-
44
//
55
// Package: Framework
66
// Class : ComponentMaker
77
//
8-
/**\class ComponentMaker ComponentMaker.h FWCore/Framework/interface/ComponentMaker.h
8+
/**\class edm::eventsetup::ComponentMaker
99
1010
Description: <one line class summary>
1111
@@ -28,16 +28,17 @@
2828
#include "FWCore/Framework/interface/ComponentDescription.h"
2929
#include "FWCore/Framework/interface/ESProductResolverProvider.h"
3030
#include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
31+
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
32+
#include "FWCore/ParameterSet/interface/ParameterSet.h"
3133
#include "FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h"
3234
#include "FWCore/Utilities/interface/ConvertException.h"
33-
34-
// forward declarations
35+
#include "FWCore/Utilities/interface/Exception.h"
3536

3637
namespace edm {
3738
namespace eventsetup {
39+
40+
// forward declarations
3841
class EventSetupProvider;
39-
class EventSetupsController;
40-
class ESProductResolverProvider;
4142

4243
class ComponentMakerBaseHelper {
4344
public:
@@ -51,10 +52,7 @@ namespace edm {
5152
class ComponentMakerBase : public ComponentMakerBaseHelper {
5253
public:
5354
typedef typename T::base_type base_type;
54-
virtual std::shared_ptr<base_type> addTo(EventSetupsController& esController,
55-
EventSetupProvider& iProvider,
56-
ParameterSet& iConfiguration,
57-
bool replaceExisting) const = 0;
55+
virtual std::shared_ptr<base_type> addTo(EventSetupProvider& iProvider, ParameterSet& iConfiguration) const = 0;
5856
};
5957

6058
template <class T, class TComponent>
@@ -65,15 +63,8 @@ namespace edm {
6563
const ComponentMaker& operator=(const ComponentMaker&) = delete; // stop default
6664
typedef typename T::base_type base_type;
6765

68-
// ---------- const member functions ---------------------
69-
std::shared_ptr<base_type> addTo(EventSetupsController& esController,
70-
EventSetupProvider& iProvider,
71-
ParameterSet& iConfiguration,
72-
bool replaceExisting) const override;
73-
74-
// ---------- static member functions --------------------
66+
std::shared_ptr<base_type> addTo(EventSetupProvider& iProvider, ParameterSet& iConfiguration) const override;
7567

76-
// ---------- member functions ---------------------------
7768
private:
7869
void setDescription(ESProductResolverProvider* iProv, const ComponentDescription& iDesc) const {
7970
iProv->setDescription(iDesc);
@@ -89,19 +80,11 @@ namespace edm {
8980
void setDescription(void*, const ComponentDescription&) const {}
9081
void setDescriptionForFinder(void*, const ComponentDescription&) const {}
9182
void setPostConstruction(void*, const edm::ParameterSet&) const {}
92-
// ---------- member data --------------------------------
9383
};
9484

9585
template <class T, class TComponent>
9686
std::shared_ptr<typename ComponentMaker<T, TComponent>::base_type> ComponentMaker<T, TComponent>::addTo(
97-
EventSetupsController& esController,
98-
EventSetupProvider& iProvider,
99-
ParameterSet& iConfiguration,
100-
bool replaceExisting) const {
101-
// This adds components to the EventSetupProvider for the process. It might
102-
// make a new component then add it or reuse a component from an earlier
103-
// SubProcess or the top level process and add that.
104-
87+
EventSetupProvider& iProvider, ParameterSet& iConfiguration) const {
10588
{
10689
auto modtype = iConfiguration.getParameter<std::string>("@module_type");
10790
auto moduleLabel = iConfiguration.getParameter<std::string>("@module_label");
@@ -119,48 +102,15 @@ namespace edm {
119102
throw;
120103
}
121104
}
122-
123-
if (!replaceExisting) {
124-
std::shared_ptr<typename T::base_type> alreadyMadeComponent =
125-
T::getComponentAndRegisterProcess(esController, iConfiguration);
126-
127-
if (alreadyMadeComponent) {
128-
// This is for the case when a component is shared between
129-
// a SubProcess and a previous SubProcess or the top level process
130-
// because the component has an identical configuration to a component
131-
// from the top level process or earlier SubProcess.
132-
std::shared_ptr<TComponent> component(
133-
std::static_pointer_cast<TComponent, typename T::base_type>(alreadyMadeComponent));
134-
T::addTo(iProvider, component, iConfiguration, true);
135-
return component;
136-
}
137-
}
138-
139105
std::shared_ptr<TComponent> component = std::make_shared<TComponent>(iConfiguration);
140106
ComponentDescription description = this->createComponentDescription(iConfiguration);
141107

142108
this->setDescription(component.get(), description);
143109
this->setDescriptionForFinder(component.get(), description);
144110
this->setPostConstruction(component.get(), iConfiguration);
145111

146-
if (replaceExisting) {
147-
// This case is for ESProducers where in the first pass
148-
// the algorithm thought the component could be shared
149-
// across SubProcess's because there was an ESProducer
150-
// from a previous process with an identical configuration.
151-
// But in a later check it was determined that sharing was not
152-
// possible because other components associated with the
153-
// same record or records that record depends on had
154-
// differing configurations.
155-
T::replaceExisting(iProvider, component);
156-
} else {
157-
// This is for the case when a new component is being constructed.
158-
// All components for the top level process fall in this category.
159-
// Or it could be a SubProcess where neither the top level process
160-
// nor any prior SubProcess had a component with exactly the same configuration.
161-
T::addTo(iProvider, component, iConfiguration, false);
162-
T::putComponent(esController, iConfiguration, component);
163-
}
112+
T::addTo(iProvider, component);
113+
164114
return component;
165115
}
166116
} // namespace eventsetup

FWCore/Framework/interface/EventProcessor.h

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@ configured in the user's main() function, and is set running.
88
99
----------------------------------------------------------------------*/
1010

11+
#include <atomic>
12+
#include <exception>
13+
#include <map>
14+
#include <memory>
15+
#include <mutex>
16+
#include <string>
17+
#include <vector>
18+
19+
#include "oneapi/tbb/task_group.h"
20+
1121
#include "DataFormats/Provenance/interface/ProcessHistoryID.h"
1222
#include "DataFormats/Provenance/interface/RunID.h"
1323
#include "DataFormats/Provenance/interface/LuminosityBlockID.h"
@@ -34,17 +44,6 @@ configured in the user's main() function, and is set running.
3444
#include "FWCore/Utilities/interface/get_underlying_safe.h"
3545
#include "FWCore/Utilities/interface/propagate_const.h"
3646

37-
#include "oneapi/tbb/task_group.h"
38-
39-
#include <atomic>
40-
#include <map>
41-
#include <memory>
42-
#include <set>
43-
#include <string>
44-
#include <vector>
45-
#include <exception>
46-
#include <mutex>
47-
4847
namespace edm {
4948

5049
class ExceptionCollector;
@@ -368,10 +367,6 @@ namespace edm {
368367

369368
bool firstEventInBlock_ = true;
370369

371-
typedef std::set<std::pair<std::string, std::string>> ExcludedData;
372-
typedef std::map<std::string, ExcludedData> ExcludedDataMap;
373-
ExcludedDataMap eventSetupDataToExcludeFromPrefetching_;
374-
375370
bool printDependencies_ = false;
376371
bool deleteNonConsumedUnscheduledModules_ = true;
377372
bool needToCallNext_ = true;

FWCore/Framework/interface/EventSetupProvider.h

Lines changed: 5 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,30 @@
1818
// Created: Thu Mar 24 14:10:07 EST 2005
1919
//
2020

21-
#include "FWCore/Utilities/interface/propagate_const.h"
22-
2321
#include <map>
2422
#include <memory>
2523
#include <set>
2624
#include <string>
25+
#include <utility>
2726
#include <vector>
2827

28+
#include "FWCore/Utilities/interface/propagate_const.h"
29+
2930
// forward declarations
3031
namespace edm {
3132
class ActivityRegistry;
3233
class EventSetupImpl;
3334
class EventSetupRecordIntervalFinder;
3435
class IOVSyncValue;
35-
class ModuleTypeResolverMaker;
36-
class ParameterSet;
3736

3837
namespace eventsetup {
3938
struct ComponentDescription;
4039
class DataKey;
4140
class ESProductResolverProvider;
42-
class EventSetupRecordImpl;
41+
class ESRecordsToProductResolverIndices;
4342
class EventSetupRecordKey;
4443
class EventSetupRecordProvider;
45-
class EventSetupsController;
4644
class NumberOfConcurrentIOVs;
47-
class ParameterSetIDHolder;
48-
class ESRecordsToProductResolverIndices;
4945

5046
class EventSetupProvider {
5147
public:
@@ -56,9 +52,7 @@ namespace edm {
5652
typedef std::multimap<RecordName, DataKeyInfo> RecordToDataMap;
5753
typedef std::map<ComponentDescription, RecordToDataMap> PreferredProviderInfo;
5854

59-
EventSetupProvider(ActivityRegistry const*,
60-
unsigned subProcessIndex = 0U,
61-
PreferredProviderInfo const* iInfo = nullptr);
55+
EventSetupProvider(ActivityRegistry const*, PreferredProviderInfo const* iInfo = nullptr);
6256
EventSetupProvider(EventSetupProvider const&) = delete;
6357
EventSetupProvider const& operator=(EventSetupProvider const&) = delete;
6458

@@ -78,7 +72,6 @@ namespace edm {
7872
EventSetupImpl const& eventSetupImpl() const { return *eventSetupImpl_; }
7973

8074
void add(std::shared_ptr<ESProductResolverProvider>);
81-
void replaceExisting(std::shared_ptr<ESProductResolverProvider>);
8275
void add(std::shared_ptr<EventSetupRecordIntervalFinder>);
8376

8477
void finishConfiguration(NumberOfConcurrentIOVs const&, bool& hasNonconcurrentFinder);
@@ -89,30 +82,10 @@ namespace edm {
8982
///Used when testing that all code properly updates on IOV changes of all Records
9083
void forceCacheClear();
9184

92-
void checkESProducerSharing(
93-
ModuleTypeResolverMaker const* resolverMaker,
94-
EventSetupProvider& precedingESProvider,
95-
std::set<ParameterSetIDHolder>& sharingCheckDone,
96-
std::map<EventSetupRecordKey, std::vector<ComponentDescription const*>>& referencedESProducers,
97-
EventSetupsController& esController);
98-
9985
void updateLookup();
10086

101-
bool doRecordsMatch(EventSetupProvider& precedingESProvider,
102-
EventSetupRecordKey const& eventSetupRecordKey,
103-
std::map<EventSetupRecordKey, bool>& allComponentsMatch,
104-
EventSetupsController const& esController);
105-
106-
void fillReferencedDataKeys(EventSetupRecordKey const& eventSetupRecordKey);
107-
108-
void resetRecordToResolverPointers();
109-
11087
void clearInitializationData();
11188

112-
unsigned subProcessIndex() const { return subProcessIndex_; }
113-
114-
static void logInfoWhenSharing(ParameterSet const& iConfiguration);
115-
11689
/// Intended for use only in tests
11790
void addRecord(const EventSetupRecordKey& iKey);
11891
void setPreferredProviderInfo(PreferredProviderInfo const& iInfo);
@@ -142,21 +115,14 @@ namespace edm {
142115

143116
ActivityRegistry const* activityRegistry_;
144117

145-
bool mustFinishConfiguration_;
146-
unsigned subProcessIndex_;
147118
propagate_const<std::shared_ptr<EventSetupImpl>> eventSetupImpl_;
148119

149120
// The following are all used only during initialization and then cleared.
150121

151122
std::unique_ptr<PreferredProviderInfo> preferredProviderInfo_;
152123
std::unique_ptr<std::vector<std::shared_ptr<EventSetupRecordIntervalFinder>>> finders_;
153124
std::unique_ptr<std::vector<std::shared_ptr<ESProductResolverProvider>>> dataProviders_;
154-
std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription const*>>> referencedDataKeys_;
155-
std::unique_ptr<std::map<EventSetupRecordKey, std::vector<std::shared_ptr<EventSetupRecordIntervalFinder>>>>
156-
recordToFinders_;
157-
std::unique_ptr<std::map<ParameterSetIDHolder, std::set<EventSetupRecordKey>>> psetIDToRecordKey_;
158125
std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription>>> recordToPreferred_;
159-
std::unique_ptr<std::set<EventSetupRecordKey>> recordsWithALooperResolver_;
160126
};
161127

162128
} // namespace eventsetup

0 commit comments

Comments
 (0)