str_buffer.append(' '.join(fields))
str_buffer.append('\n')
if str_buffer:
- os.write(self._pipe, _unicode_encode(''.join(str_buffer)))
+ str_buffer = _unicode_encode(''.join(str_buffer))
+ while str_buffer:
+ str_buffer = str_buffer[os.write(self._pipe, str_buffer):]
def _emerge_log(self, msg):
emergelog(False, msg)
else:
if not background and stdout_fd is not None:
- write_successful = False
failures = 0
- while True:
+ stdout_buf = buf
+ while stdout_buf:
try:
- if not write_successful:
- os.write(stdout_fd, buf)
- write_successful = True
- break
+ stdout_buf = \
+ stdout_buf[os.write(stdout_fd, stdout_buf):]
except OSError as e:
if e.errno != errno.EAGAIN:
raise