Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/util/_async/
Date: Mon, 30 Apr 2018 06:29:31
Message-Id: 1525069201.2495fe6ff060e2ed8ee54e08a4dec132de1f4984.zmedico@gentoo
1 commit: 2495fe6ff060e2ed8ee54e08a4dec132de1f4984
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Mon Apr 30 05:52:07 2018 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Mon Apr 30 06:20:01 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=2495fe6f
7
8 PipeLogger: add_reader asyncio compat (bug 654382)
9
10 Use add_reader for asyncio compatibility.
11
12 Bug: https://bugs.gentoo.org/654382
13
14 pym/portage/util/_async/PipeLogger.py | 20 ++++++--------------
15 1 file changed, 6 insertions(+), 14 deletions(-)
16
17 diff --git a/pym/portage/util/_async/PipeLogger.py b/pym/portage/util/_async/PipeLogger.py
18 index 02de74b16..61000271d 100644
19 --- a/pym/portage/util/_async/PipeLogger.py
20 +++ b/pym/portage/util/_async/PipeLogger.py
21 @@ -21,7 +21,7 @@ class PipeLogger(AbstractPollTask):
22 """
23
24 __slots__ = ("input_fd", "log_file_path", "stdout_fd") + \
25 - ("_log_file", "_log_file_real", "_reg_id")
26 + ("_log_file", "_log_file_real")
27
28 def _start(self):
29
30 @@ -57,8 +57,7 @@ class PipeLogger(AbstractPollTask):
31 fcntl.fcntl(fd, fcntl.F_SETFD,
32 fcntl.fcntl(fd, fcntl.F_GETFD) | fcntl.FD_CLOEXEC)
33
34 - self._reg_id = self.scheduler.io_add_watch(fd,
35 - self._registered_events, self._output_handler)
36 + self.scheduler.add_reader(fd, self._output_handler, fd)
37 self._registered = True
38
39 def _cancel(self):
40 @@ -66,14 +65,14 @@ class PipeLogger(AbstractPollTask):
41 if self.returncode is None:
42 self.returncode = self._cancelled_returncode
43
44 - def _output_handler(self, fd, event):
45 + def _output_handler(self, fd):
46
47 background = self.background
48 stdout_fd = self.stdout_fd
49 log_file = self._log_file
50
51 while True:
52 - buf = self._read_buf(fd, event)
53 + buf = self._read_buf(fd, None)
54
55 if buf is None:
56 # not a POLLIN event, EAGAIN, etc...
57 @@ -124,20 +123,13 @@ class PipeLogger(AbstractPollTask):
58 log_file.write(buf)
59 log_file.flush()
60
61 - self._unregister_if_appropriate(event)
62 -
63 - return True
64 -
65 def _unregister(self):
66 -
67 - if self._reg_id is not None:
68 - self.scheduler.source_remove(self._reg_id)
69 - self._reg_id = None
70 -
71 if self.input_fd is not None:
72 if isinstance(self.input_fd, int):
73 + self.scheduler.remove_reader(self.input_fd)
74 os.close(self.input_fd)
75 else:
76 + self.scheduler.remove_reader(self.input_fd.fileno())
77 self.input_fd.close()
78 self.input_fd = None