Skip to content
Snippets Groups Projects
Commit 5d761131 authored by Marco Clemencic's avatar Marco Clemencic
Browse files

ignore data dependencies for empty keys

if a DataHandle has a blank key (which in any case is not
allowed in the event store), ignore it when assembling the
data dependencies of the Algorithm or AlgTool

See merge request !169 and atlas/Gaudi!25
parents 79fe8bc9 d6037374
No related branches found
No related tags found
1 merge request!169ignore data dependencies for empty keys
Pipeline #
...@@ -9,10 +9,13 @@ ...@@ -9,10 +9,13 @@
class DHHVisitor : public IDataHandleVisitor { class DHHVisitor : public IDataHandleVisitor {
public: public:
DHHVisitor(DataObjIDColl& ido, DataObjIDColl& odo); DHHVisitor(DataObjIDColl& ido, DataObjIDColl& odo);
const DataObjIDColl& ignoredInpKeys() const { return m_ign_i; }
const DataObjIDColl& ignoredOutKeys() const { return m_ign_o; }
virtual void visit(const IDataHandleHolder* idhh); virtual void visit(const IDataHandleHolder* idhh);
private: private:
DataObjIDColl &m_ido, &m_odo; DataObjIDColl &m_ido, &m_odo;
DataObjIDColl m_ign_i, m_ign_o;
}; };
......
...@@ -213,9 +213,15 @@ StatusCode Algorithm::sysInitialize() { ...@@ -213,9 +213,15 @@ StatusCode Algorithm::sysInitialize() {
for (auto h : m_inputDataObjs) { for (auto h : m_inputDataObjs) {
debug() << "\n + INPUT " << h; debug() << "\n + INPUT " << h;
} }
for (auto id : avis.ignoredInpKeys()) {
debug() << "\n + INPUT IGNORED " << id;
}
for (auto h : m_outputDataObjs) { for (auto h : m_outputDataObjs) {
debug() << "\n + OUTPUT " << h; debug() << "\n + OUTPUT " << h;
} }
for (auto id : avis.ignoredOutKeys()) {
debug() << "\n + OUTPUT IGNORED " << id;
}
debug() << endmsg; debug() << endmsg;
} }
......
...@@ -13,13 +13,34 @@ DHHVisitor::visit(const IDataHandleHolder* idhh) { ...@@ -13,13 +13,34 @@ DHHVisitor::visit(const IDataHandleHolder* idhh) {
if (idhh == 0) return; if (idhh == 0) return;
for (auto h : idhh->inputHandles()) { for (auto h : idhh->inputHandles()) {
m_ido.insert(h->fullKey()); if (! h->objKey().empty()) {
m_ido.insert(h->fullKey());
} else {
m_ign_i.insert(h->fullKey());
}
} }
for (auto h : idhh->outputHandles()) { for (auto h : idhh->outputHandles()) {
m_odo.insert(h->fullKey()); if (! h->objKey().empty()) {
m_odo.insert(h->fullKey());
} else {
m_ign_o.insert(h->fullKey());
}
}
for (auto id : idhh->extraInputDeps()) {
if (! id.key().empty()) {
m_ido.insert( id );
} else {
m_ign_i.insert(id);
}
}
for (auto id : idhh->extraOutputDeps()) {
if (! id.key().empty()) {
m_odo.insert( id );
} else {
m_ign_o.insert(id);
}
} }
m_ido.insert(idhh->extraInputDeps().begin(), idhh->extraInputDeps().end());
m_odo.insert(idhh->extraOutputDeps().begin(), idhh->extraOutputDeps().end());
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment