From 6c34e2a654f54574a89f2e4f9cc6d38baddbaf8a Mon Sep 17 00:00:00 2001 From: Thomas Nagy Date: Fri, 20 Nov 2015 17:15:33 +0100 Subject: [PATCH] Force scanner functions to run after task failures - Issue 1660 --- waflib/Runner.py | 7 +++++++ waflib/Task.py | 1 + 2 files changed, 8 insertions(+) diff --git a/waflib/Runner.py b/waflib/Runner.py index db3c3ed3..b3087292 100644 --- a/waflib/Runner.py +++ b/waflib/Runner.py @@ -278,6 +278,13 @@ class Parallel(object): :param tsk: task :type tsk: :py:attr:`waflib.Task.TaskBase` """ + if hasattr(tsk, 'scan') and hasattr(tsk, 'uid'): + # TODO waf 1.9 - this breaks encapsulation + key = (tsk.uid(), 'imp') + try: + del self.bld.task_sigs[key] + except KeyError: + pass if not self.bld.keep: self.stop = True self.error.append(tsk) diff --git a/waflib/Task.py b/waflib/Task.py index b0df90a8..b8475670 100644 --- a/waflib/Task.py +++ b/waflib/Task.py @@ -206,6 +206,7 @@ class TaskBase(evil): # remove the task signature immediately before it is executed # in case of failure the task will be executed again try: + # TODO waf 1.9 - this breaks encapsulation del self.generator.bld.task_sigs[self.uid()] except KeyError: pass