summaryrefslogtreecommitdiff
path: root/buildstream/_scheduler/trackqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/_scheduler/trackqueue.py')
-rw-r--r--buildstream/_scheduler/trackqueue.py17
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