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/_emerge/
Date: Sun, 29 Apr 2018 21:29:22
Message-Id: 1525032223.b2ba35d4704172e8ddbfa0c98900f4b6ed20416b.zmedico@gentoo
1 commit: b2ba35d4704172e8ddbfa0c98900f4b6ed20416b
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Sun Apr 29 20:03:05 2018 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Sun Apr 29 20:03:43 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=b2ba35d4
7
8 AbstractPollTask: call _unregister in _async_wait (bug 654276)
9
10 Subclasses of AbstractPollTask perform idempotent cleanup in
11 the _unregister method, so it's useful for _async_wait to call it
12 automatically. This allows for migration of various cleanup code from
13 _set_returncode to _unregister, for the purposes of bug 654276.
14
15 Bug: https://bugs.gentoo.org/654276
16
17 pym/_emerge/AbstractPollTask.py | 8 +++++---
18 1 file changed, 5 insertions(+), 3 deletions(-)
19
20 diff --git a/pym/_emerge/AbstractPollTask.py b/pym/_emerge/AbstractPollTask.py
21 index 0ce3594b4..2c5403751 100644
22 --- a/pym/_emerge/AbstractPollTask.py
23 +++ b/pym/_emerge/AbstractPollTask.py
24 @@ -114,8 +114,12 @@ class AbstractPollTask(AsynchronousTask):
25
26 return buf
27
28 + def _async_wait(self):
29 + self._unregister()
30 + super(AbstractPollTask, self)._async_wait()
31 +
32 def _unregister(self):
33 - raise NotImplementedError(self)
34 + self._registered = False
35
36 def _log_poll_exception(self, event):
37 writemsg_level(
38 @@ -127,12 +131,10 @@ class AbstractPollTask(AsynchronousTask):
39 if self._registered:
40 if event & self._exceptional_events:
41 self._log_poll_exception(event)
42 - self._unregister()
43 self.cancel()
44 self.returncode = self.returncode or os.EX_OK
45 self._async_wait()
46 elif event & self.scheduler.IO_HUP:
47 - self._unregister()
48 self.returncode = self.returncode or os.EX_OK
49 self._async_wait()