Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 FWCore/Concurrency/scripts/edmStreamStallGrapher.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ def __init__(self,f):

self._f = f
if numStreams == 0:
numStreams = numStreamsFromSource +1
numStreams = numStreamsFromSource +2
self.numStreams =numStreams
self._moduleNames = moduleNames
self._esModuleNames = esModuleNames
Expand Down
10 changes: 5 additions & 5 deletions FWCore/Concurrency/test/streamGrapher_stallMonitor_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring("file:file_for_grapher.root"))

process.busy1 = cms.EDProducer("BusyWaitIntProducer",ivalue = cms.int32(1), iterations = cms.uint32(100*1000*1000))
process.legacy1 = cms.EDProducer("BusyWaitIntLegacyProducer",ivalue = cms.int32(12), iterations = cms.uint32(3000*1000))
process.shared1 = cms.EDProducer("BusyWaitIntOneSharedProducer",ivalue = cms.int32(12), iterations = cms.uint32(3000*1000))

process.adder1 = cms.EDProducer("AddIntsProducer",
labels = cms.VInputTag("a","busy1","legacy1"))
labels = cms.VInputTag("a","busy1","shared1"))

process.busy2 = cms.EDProducer("BusyWaitIntProducer", ivalue = cms.int32(7), iterations = cms.uint32(4*1000*1000))
process.busy3 = cms.EDProducer("BusyWaitIntProducer", ivalue = cms.int32(2), iterations = cms.uint32(1000*1000))
process.legacy2 = cms.EDProducer("BusyWaitIntLegacyProducer", ivalue=cms.int32(-1), iterations = cms.uint32(6000*1000))
process.shared2 = cms.EDProducer("BusyWaitIntOneSharedProducer", ivalue=cms.int32(-1), iterations = cms.uint32(6000*1000))

process.strt = cms.EDProducer("AddIntsProducer",
labels = cms.VInputTag("busy2","busy3","legacy2","b", "adder1"))
labels = cms.VInputTag("busy2","busy3","shared2","b", "adder1"))

process.t = cms.Task(process.busy1, process.legacy1, process.adder1, process.busy2, process.busy3, process.legacy2)
process.t = cms.Task(process.busy1, process.shared1, process.adder1, process.busy2, process.busy3, process.shared2)

process.p = cms.Path(process.strt, process.t)

Expand Down
1 change: 0 additions & 1 deletion FWCore/Framework/interface/StreamSchedule.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@
#include "FWCore/Framework/interface/OccurrenceTraits.h"
#include "FWCore/Framework/interface/UnscheduledCallProducer.h"
#include "FWCore/Framework/interface/WorkerManager.h"
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/Path.h"
#include "FWCore/Framework/interface/TransitionInfoTypes.h"
#include "FWCore/Framework/interface/maker/Worker.h"
Expand Down
49 changes: 37 additions & 12 deletions FWCore/Framework/test/stubs/ToyIntProducers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ Toy EDProducers of Ints for testing purposes only.
#include "DataFormats/Common/interface/TriggerResults.h"
#include "DataFormats/TestObjects/interface/ToyProducts.h"
//
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/global/EDProducer.h"
#include "FWCore/Framework/interface/limited/EDProducer.h"
Expand Down Expand Up @@ -139,19 +138,33 @@ namespace edmtest {
//
// Produces an IntProduct instance.
//
class IntLegacyProducer : public edm::EDProducer {
class IntOneSharedProducer : public edm::one::EDProducer<edm::one::SharedResources> {
public:
explicit IntLegacyProducer(edm::ParameterSet const& p) : value_(p.getParameter<int>("ivalue")) {
explicit IntOneSharedProducer(edm::ParameterSet const& p) : value_(p.getParameter<int>("ivalue")) {
produces<IntProduct>();
for (auto const& r : p.getUntrackedParameter<std::vector<std::string>>("resourceNames")) {
usesResource(r);
}
}
explicit IntOneSharedProducer(int i) : value_(i) {
produces<IntProduct>();
usesResource("IntOneShared");
}
explicit IntLegacyProducer(int i) : value_(i) { produces<IntProduct>(); }
void produce(edm::Event& e, edm::EventSetup const& c) override;

static void fillDescriptions(edm::ConfigurationDescriptions& iConfig) {
edm::ParameterSetDescription desc;
desc.add<int>("ivalue");
desc.addUntracked<std::vector<std::string>>("resourceNames", std::vector<std::string>{});

iConfig.addDefault(desc);
}

private:
int value_;
};

void IntLegacyProducer::produce(edm::Event& e, edm::EventSetup const&) {
void IntOneSharedProducer::produce(edm::Event& e, edm::EventSetup const&) {
// EventSetup is not used.
e.put(std::make_unique<IntProduct>(value_));
}
Expand Down Expand Up @@ -243,15 +256,27 @@ namespace edmtest {
}

//--------------------------------------------------------------------
class BusyWaitIntLegacyProducer : public edm::EDProducer {
class BusyWaitIntOneSharedProducer : public edm::one::EDProducer<edm::one::SharedResources> {
public:
explicit BusyWaitIntLegacyProducer(edm::ParameterSet const& p)
explicit BusyWaitIntOneSharedProducer(edm::ParameterSet const& p)
: value_(p.getParameter<int>("ivalue")),
iterations_(p.getParameter<unsigned int>("iterations")),
pi_(std::acos(-1)) {
for (auto const& r : p.getUntrackedParameter<std::vector<std::string>>("resourceNames")) {
usesResource(r);
}
produces<IntProduct>();
}

static void fillDescriptions(edm::ConfigurationDescriptions& iConfig) {
edm::ParameterSetDescription desc;
desc.add<int>("ivalue");
desc.add<unsigned int>("iterations");
desc.addUntracked<std::vector<std::string>>("resourceNames", std::vector<std::string>{});

iConfig.addDefault(desc);
}

void produce(edm::Event& e, edm::EventSetup const& c) override;

private:
Expand All @@ -260,7 +285,7 @@ namespace edmtest {
const double pi_;
};

void BusyWaitIntLegacyProducer::produce(edm::Event& e, edm::EventSetup const&) {
void BusyWaitIntOneSharedProducer::produce(edm::Event& e, edm::EventSetup const&) {
double sum = 0.;
const double stepSize = pi_ / iterations_;
for (unsigned int i = 0; i < iterations_; ++i) {
Expand Down Expand Up @@ -916,14 +941,14 @@ namespace edmtest {

using edmtest::AddAllIntsProducer;
using edmtest::AddIntsProducer;
using edmtest::BusyWaitIntLegacyProducer;
using edmtest::BusyWaitIntLimitedProducer;
using edmtest::BusyWaitIntOneSharedProducer;
using edmtest::BusyWaitIntProducer;
using edmtest::ConsumingIntProducer;
using edmtest::EventNumberIntProducer;
using edmtest::FailingProducer;
using edmtest::Int16_tProducer;
using edmtest::IntLegacyProducer;
using edmtest::IntOneSharedProducer;
using edmtest::IntProducer;
using edmtest::IntProducerBeginProcessBlock;
using edmtest::IntProducerEndProcessBlock;
Expand All @@ -939,10 +964,10 @@ DEFINE_FWK_MODULE(edmtest::FailingInLumiProducer);
DEFINE_FWK_MODULE(edmtest::FailingInRunProducer);
DEFINE_FWK_MODULE(NonProducer);
DEFINE_FWK_MODULE(IntProducer);
DEFINE_FWK_MODULE(IntLegacyProducer);
DEFINE_FWK_MODULE(IntOneSharedProducer);
DEFINE_FWK_MODULE(BusyWaitIntProducer);
DEFINE_FWK_MODULE(BusyWaitIntLimitedProducer);
DEFINE_FWK_MODULE(BusyWaitIntLegacyProducer);
DEFINE_FWK_MODULE(BusyWaitIntOneSharedProducer);
DEFINE_FWK_MODULE(ConsumingIntProducer);
DEFINE_FWK_MODULE(EventNumberIntProducer);
DEFINE_FWK_MODULE(TransientIntProducer);
Expand Down
10 changes: 6 additions & 4 deletions FWCore/Framework/test/test_mayConsumes_deadlocking_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@
resourceName = cms.untracked.string("B")
)

process.one = cms.EDProducer("IntLegacyProducer",
ivalue = cms.int32(1)
process.one = cms.EDProducer("IntOneSharedProducer",
ivalue = cms.int32(1),
resourceNames = cms.untracked.vstring("A", "B")
)

process.two = cms.EDProducer("IntLegacyProducer",
ivalue = cms.int32(2)
process.two = cms.EDProducer("IntOneSharedProducer",
ivalue = cms.int32(2),
resourceNames = cms.untracked.vstring("A", "B")
)

process.options = dict(
Expand Down
11 changes: 6 additions & 5 deletions FWCore/Framework/test/test_no_concurrent_module_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@

process.maxEvents.input = 20

process.i1 = cms.EDProducer("BusyWaitIntLegacyProducer", ivalue = cms.int32(1),
iterations = cms.uint32(300*1000))
process.i2 = cms.EDProducer("BusyWaitIntLegacyProducer", ivalue = cms.int32(2),
iterations = cms.uint32(300*1000))

process.i1 = cms.EDProducer("BusyWaitIntOneSharedProducer", ivalue = cms.int32(1),
iterations = cms.uint32(300*1000),
resourceNames = cms.untracked.vstring("foo"))
process.i2 = cms.EDProducer("BusyWaitIntOneSharedProducer", ivalue = cms.int32(2),
iterations = cms.uint32(300*1000),
resourceNames = cms.untracked.vstring("foo"))
process.c1 = cms.EDAnalyzer("ConsumingOneSharedResourceAnalyzer",
valueMustMatch = cms.untracked.int32(1),
moduleLabel = cms.untracked.InputTag("i1"),
Expand Down