diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-12-16 11:56:01 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-12-16 11:56:01 -0800 |
commit | 2eea0db1855009c3407ba6eae1dc095297769989 (patch) | |
tree | e5450ee4cb35e61530c351900e1421f5aa563e77 | |
parent | f1ec68632ff22b72b25c0d70cc2f2c137f957a91 (diff) | |
download | portage-2eea0db1855009c3407ba6eae1dc095297769989.tar.gz portage-2eea0db1855009c3407ba6eae1dc095297769989.tar.bz2 portage-2eea0db1855009c3407ba6eae1dc095297769989.zip |
PipeReader: use AbstractPollTask._read_buf()
-rw-r--r-- | pym/_emerge/PipeReader.py | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/pym/_emerge/PipeReader.py b/pym/_emerge/PipeReader.py index a465c2a28..9fedbff6f 100644 --- a/pym/_emerge/PipeReader.py +++ b/pym/_emerge/PipeReader.py @@ -3,8 +3,6 @@ from portage import os from _emerge.AbstractPollTask import AbstractPollTask -from _emerge.PollConstants import PollConstants -import errno import fcntl class PipeReader(AbstractPollTask): @@ -57,30 +55,16 @@ class PipeReader(AbstractPollTask): def _output_handler(self, fd, event): - if event & PollConstants.POLLIN: - - while True: - data = None - try: - data = os.read(fd, self._bufsize) - except OSError as e: - # EIO happens with pty on Linux after the - # slave end of the pty has been closed. - if e.errno == errno.EIO: - self._unregister() - self.wait() - break - elif e.errno == errno.EAGAIN: - break - else: - raise - else: - if data: - self._read_data.append(data) - else: - self._unregister() - self.wait() - break + while True: + data = self._read_buf(fd, event) + if data is None: + break + if data: + self._read_data.append(data) + else: + self._unregister() + self.wait() + break self._unregister_if_appropriate(event) |