diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index e62bb5232f..dbb334c55f 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -2090,22 +2090,18 @@ class runQueuePipe(): | |||
2090 | self.rqexec = rqexec | 2090 | self.rqexec = rqexec |
2091 | 2091 | ||
2092 | def read(self): | 2092 | def read(self): |
2093 | try: | 2093 | for w in [self.rq.worker, self.rq.fakeworker]: |
2094 | for w in [self.rq.worker, self.rq.fakeworker]: | 2094 | if not w: |
2095 | if not w: | 2095 | continue |
2096 | continue | 2096 | w.poll() |
2097 | pid, status = os.waitpid(w.pid, os.WNOHANG) | 2097 | if w.returncode is not None and not self.rq.teardown: |
2098 | if pid != 0 and not self.rq.teardown: | 2098 | name = None |
2099 | if self.rq.worker and pid == self.rq.worker.pid: | 2099 | if self.rq.worker and w.pid == self.rq.worker.pid: |
2100 | name = "Worker" | 2100 | name = "Worker" |
2101 | elif self.rq.fakeworker and pid == self.rq.fakeworker.pid: | 2101 | elif self.rq.fakeworker and w.pid == self.rq.fakeworker.pid: |
2102 | name = "Fakeroot" | 2102 | name = "Fakeroot" |
2103 | else: | 2103 | bb.error("%s process (%s) exited unexpectedly (%s), shutting down..." % (name, w.pid, str(w.returncode))) |
2104 | name = "Unknown" | 2104 | self.rq.finish_runqueue(True) |
2105 | bb.error("%s process (%s) exited unexpectedly (%s), shutting down..." % (name, pid, str(status))) | ||
2106 | self.rq.finish_runqueue(True) | ||
2107 | except OSError: | ||
2108 | pass | ||
2109 | 2105 | ||
2110 | start = len(self.queue) | 2106 | start = len(self.queue) |
2111 | try: | 2107 | try: |