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-27 11:51:30 +0200
commit7003d5e550d05160ddc23f1bec739767c1ea4ffa (patch)
tree4507cdecc9bef8023dc1560a3678e983d4db2666
parentdfdd3d5a59c840d09f05a0763abee2a36b43ab6c (diff)
downloadbuildstream-7003d5e550d05160ddc23f1bec739767c1ea4ffa.tar.gz
Revert "Simplify queue management"
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()