From 25fd0fc6f2bf2ed12cbefc500dfb9e53ac8c1d62 Mon Sep 17 00:00:00 2001
From: Olivier BICHLER <olivier.bichler@cea.fr>
Date: Tue, 30 Apr 2024 10:41:16 +0200
Subject: [PATCH] Exclude parameter inputs from "still consumer" check

---
 src/scheduler/Scheduler.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp
index 1c41afd4a..d383a199b 100644
--- a/src/scheduler/Scheduler.cpp
+++ b/src/scheduler/Scheduler.cpp
@@ -195,7 +195,9 @@ std::vector<std::shared_ptr<Aidge::Scheduler::StaticSchedulingElement>> Aidge::S
             // be put back in the consumers list once the remaining consumers
             // have been exhausted.
             bool isStillConsumer = false;
-            for (IOIndex_t inputIdx = 0; inputIdx < consumer->nbInputs(); ++inputIdx) {
+            // Only look for data inputs. If no data is available on data input,
+            // by definition, no parameter can be consumed on parameter inputs.
+            for (IOIndex_t inputIdx = 0; inputIdx < consumer->nbData(); ++inputIdx) {
                 AIDGE_LOG_CONTEXT("Consumer node {} input #{}", namePtrTable.at(consumer), inputIdx);
 
                 if (consumer->getOperator()->getNbConsumedData(inputIdx) <
-- 
GitLab