aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2018-05-26 21:42:29 -0700
committerZac Medico <zmedico@gentoo.org>2018-05-26 21:42:29 -0700
commitb7f94fccf4163364ab7b4c4f0dcd42b8847f03e0 (patch)
tree30707d49e863e7ae5f17788d0aecd66ab79cb1b1 /pym/_emerge
parentPiperReader._start: handle case where fd is 0 (diff)
downloadportage-b7f94fccf4163364ab7b4c4f0dcd42b8847f03e0.tar.gz
portage-b7f94fccf4163364ab7b4c4f0dcd42b8847f03e0.tar.bz2
portage-b7f94fccf4163364ab7b4c4f0dcd42b8847f03e0.zip
PiperReader._start: pass file to _array_output_handler
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/PipeReader.py17
1 files changed, 6 insertions, 11 deletions
diff --git a/pym/_emerge/PipeReader.py b/pym/_emerge/PipeReader.py
index fc3b7ca55..1aa5ee3bf 100644
--- a/pym/_emerge/PipeReader.py
+++ b/pym/_emerge/PipeReader.py
@@ -22,11 +22,6 @@ class PipeReader(AbstractPollTask):
def _start(self):
self._read_data = []
- if self._use_array:
- output_handler = self._array_output_handler
- else:
- output_handler = self._output_handler
-
for f in self.input_files.values():
fd = f if isinstance(f, int) else f.fileno()
fcntl.fcntl(fd, fcntl.F_SETFL,
@@ -42,7 +37,11 @@ class PipeReader(AbstractPollTask):
fcntl.fcntl(fd, fcntl.F_SETFD,
fcntl.fcntl(fd, fcntl.F_GETFD) | fcntl.FD_CLOEXEC)
- self.scheduler.add_reader(fd, output_handler, fd)
+ if self._use_array:
+ self.scheduler.add_reader(fd, self._array_output_handler, f)
+ else:
+ self.scheduler.add_reader(fd, self._output_handler, fd)
+
self._registered = True
def _cancel(self):
@@ -72,11 +71,7 @@ class PipeReader(AbstractPollTask):
self._async_wait()
break
- def _array_output_handler(self, fd):
-
- for f in self.input_files.values():
- if f.fileno() == fd:
- break
+ def _array_output_handler(self, f):
while True:
data = self._read_array(f)