summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-12-16 11:56:01 -0800
committerZac Medico <zmedico@gentoo.org>2011-12-16 11:56:01 -0800
commit2eea0db1855009c3407ba6eae1dc095297769989 (patch)
treee5450ee4cb35e61530c351900e1421f5aa563e77 /pym
parentf1ec68632ff22b72b25c0d70cc2f2c137f957a91 (diff)
downloadportage-2eea0db1855009c3407ba6eae1dc095297769989.tar.gz
portage-2eea0db1855009c3407ba6eae1dc095297769989.tar.bz2
portage-2eea0db1855009c3407ba6eae1dc095297769989.zip
PipeReader: use AbstractPollTask._read_buf()
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/PipeReader.py36
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)