diff options
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 774cdbca0b..7d4cbed775 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -926,38 +926,35 @@ class RunQueueData: | |||
926 | # | 926 | # |
927 | # Once all active tasks are marked, prune the ones we don't need. | 927 | # Once all active tasks are marked, prune the ones we don't need. |
928 | 928 | ||
929 | delcount = {} | ||
930 | for tid in list(self.runtaskentries.keys()): | ||
931 | if tid not in runq_build: | ||
932 | delcount[tid] = self.runtaskentries[tid] | ||
933 | del self.runtaskentries[tid] | ||
934 | |||
935 | # Handle --runall | 929 | # Handle --runall |
936 | if self.cooker.configuration.runall: | 930 | if self.cooker.configuration.runall: |
937 | # re-run the mark_active and then drop unused tasks from new list | 931 | # re-run the mark_active and then drop unused tasks from new list |
938 | runq_build = {} | 932 | reduced_tasklist = set(self.runtaskentries.keys()) |
933 | for tid in list(self.runtaskentries.keys()): | ||
934 | if tid not in runq_build: | ||
935 | reduced_tasklist.remove(tid) | ||
939 | 936 | ||
940 | for task in self.cooker.configuration.runall: | 937 | for task in self.cooker.configuration.runall: |
941 | if not task.startswith("do_"): | 938 | if not task.startswith("do_"): |
942 | task = "do_{0}".format(task) | 939 | task = "do_{0}".format(task) |
943 | runall_tids = set() | 940 | runall_tids = set() |
944 | for tid in list(self.runtaskentries): | 941 | for tid in reduced_tasklist: |
945 | wanttid = "{0}:{1}".format(fn_from_tid(tid), task) | 942 | wanttid = "{0}:{1}".format(fn_from_tid(tid), task) |
946 | if wanttid in delcount: | ||
947 | self.runtaskentries[wanttid] = delcount[wanttid] | ||
948 | if wanttid in self.runtaskentries: | 943 | if wanttid in self.runtaskentries: |
949 | runall_tids.add(wanttid) | 944 | runall_tids.add(wanttid) |
950 | 945 | ||
951 | for tid in list(runall_tids): | 946 | for tid in list(runall_tids): |
952 | mark_active(tid,1) | 947 | mark_active(tid, 1) |
953 | if self.cooker.configuration.force: | 948 | if self.cooker.configuration.force: |
954 | invalidate_task(tid, False) | 949 | invalidate_task(tid, False) |
955 | 950 | ||
956 | for tid in list(self.runtaskentries.keys()): | 951 | delcount = set() |
957 | if tid not in runq_build: | 952 | for tid in list(self.runtaskentries.keys()): |
958 | delcount[tid] = self.runtaskentries[tid] | 953 | if tid not in runq_build: |
959 | del self.runtaskentries[tid] | 954 | delcount.add(tid) |
955 | del self.runtaskentries[tid] | ||
960 | 956 | ||
957 | if self.cooker.configuration.runall: | ||
961 | if not self.runtaskentries: | 958 | if not self.runtaskentries: |
962 | bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets))) | 959 | bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets))) |
963 | 960 | ||
@@ -971,16 +968,16 @@ class RunQueueData: | |||
971 | for task in self.cooker.configuration.runonly: | 968 | for task in self.cooker.configuration.runonly: |
972 | if not task.startswith("do_"): | 969 | if not task.startswith("do_"): |
973 | task = "do_{0}".format(task) | 970 | task = "do_{0}".format(task) |
974 | runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == task } | 971 | runonly_tids = [k for k in self.runtaskentries.keys() if taskname_from_tid(k) == task] |
975 | 972 | ||
976 | for tid in list(runonly_tids): | 973 | for tid in runonly_tids: |
977 | mark_active(tid,1) | 974 | mark_active(tid, 1) |
978 | if self.cooker.configuration.force: | 975 | if self.cooker.configuration.force: |
979 | invalidate_task(tid, False) | 976 | invalidate_task(tid, False) |
980 | 977 | ||
981 | for tid in list(self.runtaskentries.keys()): | 978 | for tid in list(self.runtaskentries.keys()): |
982 | if tid not in runq_build: | 979 | if tid not in runq_build: |
983 | delcount[tid] = self.runtaskentries[tid] | 980 | delcount.add(tid) |
984 | del self.runtaskentries[tid] | 981 | del self.runtaskentries[tid] |
985 | 982 | ||
986 | if not self.runtaskentries: | 983 | if not self.runtaskentries: |