summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2020-05-12 19:16:21 +0200
committerJürg Billeter <j@bitron.ch>2020-05-13 07:25:15 +0200
commit995ed5a1f5baee421911faf4c4ef42be7f03c2f2 (patch)
tree52f0d17ed128d0dea04ee15a3541f4f8f9b6989c
parent7f36befc27de8304d5872b91a8f2a45e913969e3 (diff)
downloadbuildstream-juerg/dynamic-plan-tmp.tar.gz
Revert "Simplify queue management"juerg/dynamic-plan-tmp
This reverts commit aa25f6fcf49f0015fae34dfd79b4626a816bf886.
-rw-r--r--src/buildstream/_scheduler/queues/queue.py7
-rw-r--r--src/buildstream/_stream.py10
2 files changed, 14 insertions, 3 deletions
diff --git a/src/buildstream/_scheduler/queues/queue.py b/src/buildstream/_scheduler/queues/queue.py
index 39b7af4ce..986ac6c0a 100644
--- a/src/buildstream/_scheduler/queues/queue.py
+++ b/src/buildstream/_scheduler/queues/queue.py
@@ -241,6 +241,13 @@ class Queue:
for element in ready
]
+ # set_required_element_check()
+ #
+ # This ensures that, for the first non-track queue, we must check
+ # whether elements are required before enqueuing them
+ def set_required_element_check(self):
+ self._required_element_check = True
+
# any_failed_elements()
#
# Returns whether any elements in this queue have failed their jobs
diff --git a/src/buildstream/_stream.py b/src/buildstream/_stream.py
index bba3831c3..dc91db6b7 100644
--- a/src/buildstream/_stream.py
+++ b/src/buildstream/_stream.py
@@ -371,8 +371,8 @@ class Stream:
self._scheduler.clear_queues()
track_queue = TrackQueue(self._scheduler)
- self._add_queue(track_queue)
- self._enqueue_plan(elements)
+ self._add_queue(track_queue, track=True)
+ self._enqueue_plan(elements, queue=track_queue)
self._run()
# pull()
@@ -1308,7 +1308,11 @@ class Stream:
# Args:
# queue (Queue): Queue to add to the pipeline
#
- def _add_queue(self, queue):
+ def _add_queue(self, queue, *, track=False):
+ if not track and not self.queues:
+ # First non-track queue
+ queue.set_required_element_check()
+
self.queues.append(queue)
# _enqueue_plan()