diff options
author | Zac Medico <zmedico@gentoo.org> | 2018-05-26 21:42:29 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2018-05-26 21:42:29 -0700 |
commit | b7f94fccf4163364ab7b4c4f0dcd42b8847f03e0 (patch) | |
tree | 30707d49e863e7ae5f17788d0aecd66ab79cb1b1 /pym/_emerge | |
parent | PiperReader._start: handle case where fd is 0 (diff) | |
download | portage-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.py | 17 |
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) |