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: Wed, 08 Feb 2012 05:17:10
Message-Id: 6b985978952fce6f1bb0741d8657d08a20c9937f.zmedico@gentoo
1 commit: 6b985978952fce6f1bb0741d8657d08a20c9937f
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Wed Feb 8 05:16:51 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Wed Feb 8 05:16:51 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=6b985978
7
8 AbstractPollTask: use timeout_add
9
10 ---
11 pym/_emerge/AbstractPollTask.py | 25 +++++++++++--------------
12 1 files changed, 11 insertions(+), 14 deletions(-)
13
14 diff --git a/pym/_emerge/AbstractPollTask.py b/pym/_emerge/AbstractPollTask.py
15 index b4728e7..9229052 100644
16 --- a/pym/_emerge/AbstractPollTask.py
17 +++ b/pym/_emerge/AbstractPollTask.py
18 @@ -5,7 +5,6 @@ import array
19 import errno
20 import logging
21 import os
22 -import time
23
24 from portage.util import writemsg_level
25 from _emerge.AsynchronousTask import AsynchronousTask
26 @@ -129,16 +128,14 @@ class AbstractPollTask(AsynchronousTask):
27 self.scheduler.iteration()
28 return
29
30 - remaining_timeout = timeout
31 - start_time = time.time()
32 - while self._registered:
33 - self.scheduler.iteration()
34 - elapsed_time = time.time() - start_time
35 - if elapsed_time < 0:
36 - # The system clock has changed such that start_time
37 - # is now in the future, so just assume that the
38 - # timeout has already elapsed.
39 - break
40 - remaining_timeout = timeout - 1000 * elapsed_time
41 - if remaining_timeout <= 0:
42 - break
43 + def timeout_cb():
44 + timeout_cb.timed_out = True
45 + return False
46 + timeout_cb.timed_out = False
47 + timeout_cb.timeout_id = self.scheduler.timeout_add(timeout, timeout_cb)
48 +
49 + try:
50 + while self._registered and not timeout_cb.timed_out:
51 + self.scheduler.iteration()
52 + finally:
53 + self.scheduler.unregister(timeout_cb.timeout_id)