summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/process.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/process.py')
-rw-r--r--bitbake/lib/bb/process.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/bitbake/lib/bb/process.py b/bitbake/lib/bb/process.py
index d95a03d176..7c797852ed 100644
--- a/bitbake/lib/bb/process.py
+++ b/bitbake/lib/bb/process.py
@@ -83,15 +83,16 @@ def _logged_communicate(pipe, log, input, extrafiles):
bb.utils.nonblockingfd(fobj.fileno())
rin.append(fobj)
- def readextras():
+ def readextras(selected):
for fobj, func in extrafiles:
- try:
- data = fobj.read()
- except IOError as err:
- if err.errno == errno.EAGAIN or err.errno == errno.EWOULDBLOCK:
- data = None
- if data is not None:
- func(data)
+ if fobj in selected:
+ try:
+ data = fobj.read()
+ except IOError as err:
+ if err.errno == errno.EAGAIN or err.errno == errno.EWOULDBLOCK:
+ data = None
+ if data is not None:
+ func(data)
try:
while pipe.poll() is None:
@@ -114,12 +115,12 @@ def _logged_communicate(pipe, log, input, extrafiles):
errdata.append(data)
log.write(data)
- readextras()
+ readextras(r)
finally:
log.flush()
- readextras()
+ readextras([fobj for fobj, _ in extrafiles])
if pipe.stdout is not None:
pipe.stdout.close()