Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase of the CMSSW_7_1_THREADED_X branch on top of CMSSW_7_1_X #3461

Merged
merged 50 commits into from
Apr 28, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
20c7b96
The variable remainingEvents_ may be read by multiple threads simulta…
Dr15Jones Oct 2, 2013
4dc580d
First version to actually process multiple events concurrently
Dr15Jones Oct 3, 2013
7c80d45
Propagate exceptions thrown during processing to the main thread
Dr15Jones Oct 4, 2013
af13a91
Added classes to managed resources shared by multiple modules
Dr15Jones Oct 7, 2013
4c388eb
Switched to using recursive_mutex and moved SharedResourcesAcquirer.h…
Dr15Jones Oct 7, 2013
26ba0da
Made legacy modules thread safe
Dr15Jones Oct 7, 2013
fa25861
Use the SharedResourcesAcquirer when a ‘one’ type module declares a S…
Dr15Jones Oct 8, 2013
7212d2b
Need to explicitly instantiate the SharedResourcesUser templated class
Dr15Jones Oct 8, 2013
969d359
Added missing mutex includes
Dr15Jones Oct 8, 2013
b91697d
commented out debug printouts
Dr15Jones Oct 8, 2013
03bd5b5
Make access to EventSetup thread safe
Dr15Jones Oct 9, 2013
16d250c
Use less strict acquire/release memory ordering for DataProxy cache info
Dr15Jones Oct 9, 2013
e46dbe0
Added a special resource for DelayedReader
Dr15Jones Oct 10, 2013
541d15f
DelayedReader can now use a SharedResourcesAcquirer
Dr15Jones Oct 10, 2013
d509d5a
Use new InputSource and DelayedReader APIs to synchronize
Dr15Jones Oct 10, 2013
00c920b
clear the event selector in a thread safe manner
Dr15Jones Oct 15, 2013
a05c90d
Have delayed reading of provenance synchronize with all other reads f…
Dr15Jones Oct 15, 2013
45d32b4
Tell ROOT we are going to use multiple threads
Dr15Jones Oct 15, 2013
00f5984
Tell ROOT not to keep a list of all TObjects
Dr15Jones Oct 16, 2013
cf9a21a
Classes inheriting from TClassStreamer must implement the Generate me…
Dr15Jones Oct 16, 2013
092fffe
ROOT requires a dummy TThread object be instantiated in each thread
Dr15Jones Oct 16, 2013
22bc087
Have InitRootHandlers handle setting up ROOT for threading
Dr15Jones Oct 18, 2013
7daf72d
Do not fast copy ROOT files if using multiple threads
Dr15Jones Oct 18, 2013
d7db4bb
Fail at run time if Service uses an obsolete signal.
Dr15Jones Oct 28, 2013
693abf7
RandomNumberGeneratorService Threaded
wddgit Nov 12, 2013
abb7059
fix InputSource after automatic merging of #1575 in the THREADED branch
fwyzard Nov 28, 2013
1bd77d2
Fix unit tests for Random Numbers. This is for the threaded
wddgit Dec 5, 2013
2bc2f92
Don't use obsolete signals
wmtan Dec 5, 2013
8e09348
Modify behavior of modules using shared resources
wddgit Dec 19, 2013
943bb42
Optimize registerSharedResource function
wddgit Dec 20, 2013
c5aff1c
Updated file to newer ROOT format
Dr15Jones Dec 30, 2013
ca3185b
Disable the triggerCache in the multithreaded environment.
wmtan Jan 3, 2014
325de45
Force creating of ROOT Streamers at begin of job
Dr15Jones Jan 18, 2014
d74bf3e
Force creation of TStreamerInfos at TFile open time
Dr15Jones Jan 23, 2014
81cf685
Fix unit test failure. In test diff ignore text some class is printing
wddgit Jan 27, 2014
82e2ce0
Fix tab vs space issues in code
Dr15Jones Jan 28, 2014
8fa9cd1
Use ROOT’s Cint Mutex to protect access to CINT structures
Dr15Jones Jan 29, 2014
6fb4009
Keep ROOT from optimizing Streamers
Dr15Jones Feb 10, 2014
4f7a373
Fix merge problem
wddgit Feb 19, 2014
ed60a83
Ignore new ROOT error message about TH1 nbins <=0
Dr15Jones Mar 7, 2014
ac16f5f
Remove getEngine() function from random service
wddgit Mar 12, 2014
5459475
Ignore new nbinsy warning from ROOT
Dr15Jones Mar 14, 2014
9c66691
No longer force all Streamers to exist early
Dr15Jones Mar 19, 2014
56a7570
Forced to take ROOT internal mutex lock to avoid deadlock
Dr15Jones Mar 19, 2014
7fa242a
Use R__LOCKGUARD2 instead of R__LOCKGUARD
Dr15Jones Mar 19, 2014
99f8c49
Do not force creation of StreamerInfos at ROOT file opening
Dr15Jones Mar 21, 2014
de76e6b
Removed TrackPropagation/Geant4e from Threaded branch
Dr15Jones Apr 3, 2014
a725a99
Removed PolyFit3DParametrizedMagneticField from Threaded branch
Dr15Jones Apr 4, 2014
f2c4969
Remove DQM service from configurations
Dr15Jones Apr 15, 2014
fa306b4
removed use of TkDetMap from configurations
Dr15Jones Apr 15, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DQM/SiStripCommon/python/TkHistoMap_cfi.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import FWCore.ParameterSet.Config as cms

TkDetMap = cms.Service("TkDetMap");
#TkDetMap = cms.Service("TkDetMap");
SiStripDetInfoFileReader = cms.Service("SiStripDetInfoFileReader");
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@
TrackEffClient.AlgoName = 'CKFTk'

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")

Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@
TrackEffClient.AlgoName = 'CKFTk'

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")

Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@
TrackEffClient.AlgoName = 'CKFTk'

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")

Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@
TrackEffClient.AlgoName = 'CKFTk'

# Sequence
SiStripCosmicDQMClient = cms.Sequence(siStripQTester*siStripOfflineAnalyser*TrackEffClient)
#removed modules using TkDetMap
#SiStripCosmicDQMClient = cms.Sequence(siStripQTester*siStripOfflineAnalyser*TrackEffClient)
SiStripCosmicDQMClient = cms.Sequence(siStripQTester*TrackEffClient)


# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")
SiStripDetInfoFileReade = cms.Service("SiStripDetInfoFileReader")
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@
)

# define new HI sequence
SiStripOfflineDQMClientHI = cms.Sequence(siStripQTesterHI*siStripOfflineAnalyser)
#removed modules using TkDetMap
#SiStripOfflineDQMClientHI = cms.Sequence(siStripQTesterHI*siStripOfflineAnalyser)
SiStripOfflineDQMClientHI = cms.Sequence(siStripQTesterHI)

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")
SiStripDetInfoFileReade = cms.Service("SiStripDetInfoFileReader")
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,11 @@


# Sequence
SiStripOfflineDQMClient = cms.Sequence(siStripQTester*siStripOfflineAnalyser)
#removed modules using TkDetMap
#SiStripOfflineDQMClient = cms.Sequence(siStripQTester*siStripOfflineAnalyser)
SiStripOfflineDQMClient = cms.Sequence(siStripQTester)


# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")
SiStripDetInfoFileReade = cms.Service("SiStripDetInfoFileReader")
2 changes: 1 addition & 1 deletion DQM/SiStripMonitorClient/python/SiStripClientConfig_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,5 @@
SiStripOfflineDQMClient = cms.Sequence(offlineAnalyser)

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")

Original file line number Diff line number Diff line change
Expand Up @@ -205,5 +205,5 @@
TrackEffMon_hi.FolderName = 'Tracking/TrackParameters/TrackEfficiency'

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")
SiStripDetInfoFileReade = cms.Service("SiStripDetInfoFileReader")
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@
)

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")
SiStripDetInfoFileReade = cms.Service("SiStripDetInfoFileReader")

# Event History Producer
Expand All @@ -182,8 +182,12 @@
# Sequences
SiStripDQMTier0_cosmicTk = cms.Sequence(APVPhases*consecutiveHEs*SiStripMonitorTrack_cosmicTk*MonitorTrackResiduals_cosmicTk*TrackMon_cosmicTk*TrackEffMon_cosmicTk)

SiStripDQMTier0_ckf = cms.Sequence(APVPhases*consecutiveHEs*SiStripMonitorTrack_ckf*MonitorTrackResiduals_ckf*TrackMon_ckf*TrackEffMon_ckf)
#removed modules using TkDetMap
#SiStripDQMTier0_ckf = cms.Sequence(APVPhases*consecutiveHEs*SiStripMonitorTrack_ckf*MonitorTrackResiduals_ckf*TrackMon_ckf*TrackEffMon_ckf)
SiStripDQMTier0_ckf = cms.Sequence(APVPhases*consecutiveHEs*MonitorTrackResiduals_ckf*TrackMon_ckf*TrackEffMon_ckf)

#SiStripDQMTier0_rs = cms.Sequence(APVPhases*consecutiveHEs*SiStripMonitorTrack_rs*MonitorTrackResiduals_rs*TrackMon_rs*TrackEffMon_rs)

SiStripDQMTier0 = cms.Sequence(APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrack_ckf*MonitorTrackResiduals_ckf*TrackMon_cosmicTk*TrackMon_ckf*TrackEffMon_ckf*TrackSplitMonitor*dqmInfoSiStrip)
#removed modules using TkDetMap
#SiStripDQMTier0 = cms.Sequence(APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrack_ckf*MonitorTrackResiduals_ckf*TrackMon_cosmicTk*TrackMon_ckf*TrackEffMon_ckf*TrackSplitMonitor*dqmInfoSiStrip)
SiStripDQMTier0 = cms.Sequence(APVPhases*consecutiveHEs*siStripFEDCheck*MonitorTrackResiduals_ckf*TrackMon_cosmicTk*TrackMon_ckf*TrackEffMon_ckf*TrackSplitMonitor*dqmInfoSiStrip)
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,14 @@
TrackMon_hi.FolderName = 'Tracking/TrackParameters'
TrackMon_hi.BSFolderName = 'Tracking/TrackParameters/BeamSpotParameters'

#removed all modules using TkDetMap service
#SiStripDQMTier0_hi = cms.Sequence(APVPhases * consecutiveHEs *
# siStripFEDCheck * siStripFEDMonitor *
# SiStripMonitorDigi * SiStripMonitorCluster *
# SiStripMonitorTrack_hi *
# MonitorTrackResiduals_hi *
# TrackMon_hi)
SiStripDQMTier0_hi = cms.Sequence(APVPhases * consecutiveHEs *
siStripFEDCheck * siStripFEDMonitor *
SiStripMonitorDigi * SiStripMonitorCluster *
SiStripMonitorTrack_hi *
siStripFEDCheck *
MonitorTrackResiduals_hi *
TrackMon_hi)
27 changes: 21 additions & 6 deletions DQM/SiStripMonitorClient/python/SiStripSourceConfigTier0_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
)

# Services needed for TkHistoMap
TkDetMap = cms.Service("TkDetMap")
#TkDetMap = cms.Service("TkDetMap")
SiStripDetInfoFileReade = cms.Service("SiStripDetInfoFileReader")

# Event History Producer
Expand All @@ -122,18 +122,33 @@
from RecoLuminosity.LumiProducer.lumiProducer_cff import *

# Sequence
#removed modules using TkDetMap service
#SiStripDQMTier0 = cms.Sequence(
# APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorClusterBPTX
# *SiStripMonitorTrackCommon*MonitorTrackResiduals
# *dqmInfoSiStrip)

#SiStripDQMTier0Common = cms.Sequence(
# APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorClusterBPTX
# *SiStripMonitorTrackCommon
# *dqmInfoSiStrip)

#SiStripDQMTier0MinBias = cms.Sequence(
# APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorClusterBPTX
# *SiStripMonitorTrackMB*MonitorTrackResiduals
# *dqmInfoSiStrip)

SiStripDQMTier0 = cms.Sequence(
APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorClusterBPTX
*SiStripMonitorTrackCommon*MonitorTrackResiduals
APVPhases*consecutiveHEs*siStripFEDCheck
*MonitorTrackResiduals
*dqmInfoSiStrip)

SiStripDQMTier0Common = cms.Sequence(
APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorClusterBPTX
*SiStripMonitorTrackCommon
APVPhases*consecutiveHEs*siStripFEDCheck
*dqmInfoSiStrip)

SiStripDQMTier0MinBias = cms.Sequence(
APVPhases*consecutiveHEs*siStripFEDCheck*siStripFEDMonitor*SiStripMonitorDigi*SiStripMonitorClusterBPTX
APVPhases*consecutiveHEs*siStripFEDCheck
*SiStripMonitorTrackMB*MonitorTrackResiduals
*dqmInfoSiStrip)

10 changes: 7 additions & 3 deletions DQM/SiStripMonitorClient/python/SiStripSourceConfig_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,13 @@
TrackMonColl.AlgoName = 'CKFTk'
TrackMonColl.doSeedParameterHistos = True
# Sequences
SiStripSourcesSimData = cms.Sequence(SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrackSim*MonitorTrackResidualsSim*TrackMonSim)
SiStripSourcesRealData = cms.Sequence(SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrackReal*MonitorTrackResidualsReal*TrackMonReal)
SiStripSourcesRealDataCollision = cms.Sequence(SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrackColl*MonitorTrackResidualsColl*TrackMonColl)
#removed modules using TkDetMap service
#SiStripSourcesSimData = cms.Sequence(SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrackSim*MonitorTrackResidualsSim*TrackMonSim)
#SiStripSourcesRealData = cms.Sequence(SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrackReal*MonitorTrackResidualsReal*TrackMonReal)
#SiStripSourcesRealDataCollision = cms.Sequence(SiStripMonitorDigi*SiStripMonitorCluster*SiStripMonitorTrackColl*MonitorTrackResidualsColl*TrackMonColl)
SiStripSourcesSimData = cms.Sequence(SiStripMonitorTrackSim*MonitorTrackResidualsSim*TrackMonSim)
SiStripSourcesRealData = cms.Sequence(SiStripMonitorTrackReal*MonitorTrackResidualsReal*TrackMonReal)
SiStripSourcesRealDataCollision = cms.Sequence(SiStripMonitorTrackColl*MonitorTrackResidualsColl*TrackMonColl)



Expand Down
15 changes: 8 additions & 7 deletions DQMServices/Core/python/DQM_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
# needed backend
from DQMServices.Core.DQMStore_cfi import *

DQM = cms.Service("DQM",
debug = cms.untracked.bool(False),
publishFrequency = cms.untracked.double(5.0),
collectorPort = cms.untracked.int32(9090),
collectorHost = cms.untracked.string('localhost'),
filter = cms.untracked.string('')
)
#Temporarily remove for thread safety reasons
#DQM = cms.Service("DQM",
# debug = cms.untracked.bool(False),
# publishFrequency = cms.untracked.double(5.0),
# collectorPort = cms.untracked.int32(9090),
# collectorHost = cms.untracked.string('localhost'),
# filter = cms.untracked.string('')
#)
5 changes: 4 additions & 1 deletion DataFormats/Common/interface/RefCoreStreamer.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ namespace edm {

void operator() (TBuffer &R__b, void *objp);

TClassStreamer* Generate() const;

private:
TClassRef cl_;
};
Expand All @@ -24,7 +26,8 @@ namespace edm {
explicit RefCoreWithIndexStreamer() : cl_("edm::RefCoreWithIndex"){}

void operator() (TBuffer &R__b, void *objp);


TClassStreamer* Generate() const;
private:
TClassRef cl_;
};
Expand Down
10 changes: 9 additions & 1 deletion DataFormats/Common/src/RefCoreStreamer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,15 @@ namespace edm {
}
}


TClassStreamer*
RefCoreStreamer::Generate() const {
return new RefCoreStreamer(*this);
}

TClassStreamer*
RefCoreWithIndexStreamer::Generate() const {
return new RefCoreWithIndexStreamer(*this);
}


void setRefCoreStreamer(bool resetAll) {
Expand Down
1 change: 1 addition & 0 deletions DataFormats/Streamer/interface/StreamedProductStreamer.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ namespace edm {

void operator() (TBuffer &R__b, void *objp);

TClassStreamer* Generate() const;
private:
TClassRef cl_;
};
Expand Down
5 changes: 5 additions & 0 deletions DataFormats/Streamer/src/StreamedProductStreamer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ namespace edm {
}
}
}

TClassStreamer*
StreamedProductStreamer::Generate() const {
return new StreamedProductStreamer(*this);
}

void
setStreamedProductStreamer() {
Expand Down
10 changes: 5 additions & 5 deletions FWCore/Framework/interface/DataProxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
//

// system include files
#include <atomic>

// user include files

Expand All @@ -37,7 +38,7 @@ namespace edm {
virtual ~DataProxy();

// ---------- const member functions ---------------------
bool cacheIsValid() const { return cacheIsValid_; }
bool cacheIsValid() const { return cacheIsValid_.load(std::memory_order_acquire); }

void doGet(EventSetupRecord const& iRecord, DataKey const& iKey, bool iTransiently) const;
void const* get(EventSetupRecord const&, DataKey const& iKey, bool iTransiently) const;
Expand Down Expand Up @@ -85,12 +86,11 @@ namespace edm {
DataProxy(DataProxy const&); // stop default

DataProxy const& operator=(DataProxy const&); // stop default
void setCacheIsValidAndAccessType(bool iTransientAccessOnly) const;

// ---------- member data --------------------------------
mutable void const* cache_;
mutable bool cacheIsValid_;
mutable bool nonTransientAccessRequested_;
mutable void const* cache_; //protected by a global mutex
mutable std::atomic<bool> cacheIsValid_;
mutable std::atomic<bool> nonTransientAccessRequested_;
ComponentDescription const* description_;
};
}
Expand Down
14 changes: 11 additions & 3 deletions FWCore/Framework/interface/DelayedReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,28 @@ namespace edm {
struct BranchKey;
class EDProductGetter;
class WrapperInterfaceBase;
class SharedResourcesAcquirer;
class DelayedReader {
public:
virtual ~DelayedReader();
WrapperOwningHolder getProduct(BranchKey const& k, WrapperInterfaceBase const* interface, EDProductGetter const* ep) {
return getProduct_(k, interface, ep);
}
WrapperOwningHolder getProduct(BranchKey const& k, WrapperInterfaceBase const* interface, EDProductGetter const* ep);

void mergeReaders(DelayedReader* other) {mergeReaders_(other);}
void reset() {reset_();}

SharedResourcesAcquirer* sharedResources() const {
return sharedResources_();
}



private:
virtual WrapperOwningHolder getProduct_(BranchKey const& k,
WrapperInterfaceBase const* interface,
EDProductGetter const* ep) const = 0;
virtual void mergeReaders_(DelayedReader*) = 0;
virtual void reset_() = 0;
virtual SharedResourcesAcquirer* sharedResources_() const;
};
}

Expand Down
6 changes: 5 additions & 1 deletion FWCore/Framework/interface/EDAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
#include "DataFormats/Provenance/interface/ModuleDescription.h"
#include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
#include "FWCore/Framework/interface/EDConsumerBase.h"
#include "FWCore/Framework/interface/SharedResourcesAcquirer.h"

#include <string>
#include <mutex>

// EDAnalyzer is the base class for all analyzer "modules".

Expand All @@ -25,7 +27,7 @@ namespace edm {
template <typename T> friend class WorkerT;
typedef EDAnalyzer ModuleType;

EDAnalyzer() : moduleDescription_() {}
EDAnalyzer();
virtual ~EDAnalyzer();

std::string workerType() const {return "WorkerT<EDAnalyzer>";}
Expand Down Expand Up @@ -75,6 +77,8 @@ namespace edm {
moduleDescription_ = md;
}
ModuleDescription moduleDescription_;
SharedResourcesAcquirer resourceAcquirer_;
std::mutex mutex_;

std::function<void(BranchDescription const&)> callWhenNewProductsRegistered_;
};
Expand Down
9 changes: 6 additions & 3 deletions FWCore/Framework/interface/EDFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ These products should be informational products about the filter decision.
#include "FWCore/Framework/interface/ProducerBase.h"
#include "FWCore/Framework/interface/EDConsumerBase.h"
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/SharedResourcesAcquirer.h"

#include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
#include "DataFormats/Provenance/interface/ModuleDescription.h"

#include <string>
#include <vector>
#include <mutex>

namespace edm {
namespace maker {
Expand All @@ -34,9 +37,7 @@ namespace edm {
template <typename T> friend class WorkerT;
typedef EDFilter ModuleType;

EDFilter() : ProducerBase() , moduleDescription_(),
previousParentage_(), previousParentageId_() {
}
EDFilter();
virtual ~EDFilter();

static void fillDescriptions(ConfigurationDescriptions& descriptions);
Expand Down Expand Up @@ -90,6 +91,8 @@ namespace edm {
}
ModuleDescription moduleDescription_;
std::vector<BranchID> previousParentage_;
SharedResourcesAcquirer resourceAcquirer_;
std::mutex mutex_;
ParentageID previousParentageId_;
};
}
Expand Down
Loading