diff options
Diffstat (limited to 'buildstream/_scheduler/trackqueue.py')
-rw-r--r-- | buildstream/_scheduler/trackqueue.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/buildstream/_scheduler/trackqueue.py b/buildstream/_scheduler/trackqueue.py index 404813f38..ffa143d5a 100644 --- a/buildstream/_scheduler/trackqueue.py +++ b/buildstream/_scheduler/trackqueue.py @@ -38,8 +38,9 @@ class TrackQueue(Queue): complete_name = "Tracked" queue_type = QueueType.FETCH - def __init__(self): + def __init__(self, save=True): super(TrackQueue, self).__init__() + self.save = save def process(self, element): return element._track() @@ -68,12 +69,14 @@ class TrackQueue(Queue): # Here we are in master process, what to do if writing # to the disk fails for some reason ? - try: - _yaml.dump(toplevel, fullname) - except OSError as e: - source.error("Failed to update project file", - detail="{}: Failed to rewrite tracked source to file {}: {}" - .format(source, fullname, e)) + if self.save: + try: + _yaml.dump(toplevel, fullname) + except OSError as e: + source.error("Failed to update project file", + detail="{}: Failed to rewrite " + "tracked source to file {}: {}" + .format(source, fullname, e)) # Forcefully recalculate the element's consistency state after successfully # tracking, this is avoid a following fetch queue operating on the sources |