summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-02-10 13:58:17 -0800
committerZac Medico <zmedico@gentoo.org>2012-02-10 13:58:17 -0800
commit8384ee6a6116a9055601fe7729026af2024f4fa0 (patch)
tree8b25df385d804596f38276436f0b8e63dc6c40e2
parent57a1219ba81b8f7d9c9beecf27ed500da6239b3a (diff)
downloadportage-8384ee6a6116a9055601fe7729026af2024f4fa0.tar.gz
portage-8384ee6a6116a9055601fe7729026af2024f4fa0.tar.bz2
portage-8384ee6a6116a9055601fe7729026af2024f4fa0.zip
Scheduler: cleanup timeout after _main_loop
The way we don't leave an leak a reference to the Scheduler instance in the global EventLoop instance.
-rw-r--r--pym/_emerge/Scheduler.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index 674a11e49..100d89d1c 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -196,8 +196,6 @@ class Scheduler(PollScheduler):
self._status_display = JobStatusDisplay(
xterm_titles=('notitles' not in settings.features))
- self.sched_iface.timeout_add(self._max_display_latency,
- self._status_display.display)
self._max_load = myopts.get("--load-average")
max_jobs = myopts.get("--jobs")
if max_jobs is None:
@@ -1354,6 +1352,8 @@ class Scheduler(PollScheduler):
failed_pkgs = self._failed_pkgs
portage.locks._quiet = self._background
portage.elog.add_listener(self._elog_listener)
+ display_timeout_id = self.sched_iface.timeout_add(
+ self._max_display_latency, self._status_display.display)
rval = os.EX_OK
try:
@@ -1362,6 +1362,7 @@ class Scheduler(PollScheduler):
self._main_loop_cleanup()
portage.locks._quiet = False
portage.elog.remove_listener(self._elog_listener)
+ self.sched_iface.source_remove(display_timeout_id)
if failed_pkgs:
rval = failed_pkgs[-1].returncode