diff options
author | Jürg Billeter <j@bitron.ch> | 2020-05-12 19:16:21 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2020-05-13 07:25:15 +0200 |
commit | 995ed5a1f5baee421911faf4c4ef42be7f03c2f2 (patch) | |
tree | 52f0d17ed128d0dea04ee15a3541f4f8f9b6989c | |
parent | 7f36befc27de8304d5872b91a8f2a45e913969e3 (diff) | |
download | buildstream-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.py | 7 | ||||
-rw-r--r-- | src/buildstream/_stream.py | 10 |
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() |