[bitbake-devel] [PATCH 5/8] runqueue.py: check results[0] in keys of build_pids before being used to avoid exceptions
Shane Wang
shane.wang at intel.com
Thu Mar 29 12:54:54 UTC 2012
[Yocto #2186]
Signed-off-by: Shane Wang <shane.wang at intel.com>
---
bitbake/lib/bb/runqueue.py | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 6970548..67ad14b 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1049,17 +1049,21 @@ class RunQueueExecute:
result = os.waitpid(-1, os.WNOHANG)
if result[0] == 0 and result[1] == 0:
return None
- task = self.build_pids[result[0]]
- del self.build_pids[result[0]]
- self.build_pipes[result[0]].close()
- del self.build_pipes[result[0]]
+ task = None
+ if result[0] in self.build_pids.keys():
+ task = self.build_pids[result[0]]
+ del self.build_pids[result[0]]
+ if result[0] in self.build_pipes.keys():
+ self.build_pipes[result[0]].close()
+ del self.build_pipes[result[0]]
# self.build_stamps[result[0]] may not exist when use shared work directory.
if result[0] in self.build_stamps.keys():
del self.build_stamps[result[0]]
- if result[1] != 0:
- self.task_fail(task, result[1]>>8)
- else:
- self.task_complete(task)
+ if task:
+ if result[1] != 0:
+ self.task_fail(task, result[1]>>8)
+ else:
+ self.task_complete(task)
return True
def finish_now(self):
--
1.7.6
More information about the bitbake-devel
mailing list