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: Thu, 17 Nov 2011 05:15:22
Message-Id: 39dfd5bf7b0c26c05b568c4538fc85bb9fe3b116.zmedico@gentoo
1 commit: 39dfd5bf7b0c26c05b568c4538fc85bb9fe3b116
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Thu Nov 17 05:15:00 2011 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Thu Nov 17 05:15:00 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=39dfd5bf
7
8 pkg_pretend: handle interruption more
9
10 ---
11 pym/_emerge/Scheduler.py | 6 ++++++
12 1 files changed, 6 insertions(+), 0 deletions(-)
13
14 diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
15 index 261fa95..3b53a37 100644
16 --- a/pym/_emerge/Scheduler.py
17 +++ b/pym/_emerge/Scheduler.py
18 @@ -927,6 +927,7 @@ class Scheduler(PollScheduler):
19 build_dir = EbuildBuildDir(scheduler=sched_iface,
20 settings=settings)
21 build_dir.lock()
22 + current_task = None
23
24 try:
25
26 @@ -935,6 +936,7 @@ class Scheduler(PollScheduler):
27 if existing_buildir:
28 clean_phase = EbuildPhase(background=False,
29 phase='clean', scheduler=sched_iface, settings=settings)
30 + current_task = clean_phase
31 clean_phase.start()
32 clean_phase.wait()
33
34 @@ -956,6 +958,7 @@ class Scheduler(PollScheduler):
35
36 verifier = BinpkgVerifier(pkg=x,
37 scheduler=sched_iface)
38 + current_task = verifier
39 verifier.start()
40 if verifier.wait() != os.EX_OK:
41 failures += 1
42 @@ -998,12 +1001,15 @@ class Scheduler(PollScheduler):
43 phase="pretend", scheduler=sched_iface,
44 settings=settings)
45
46 + current_task = pretend_phase
47 pretend_phase.start()
48 ret = pretend_phase.wait()
49 if ret != os.EX_OK:
50 failures += 1
51 portage.elog.elog_process(x.cpv, settings)
52 finally:
53 + if current_task is not None and current_task.isAlive():
54 + current_task.cancel()
55 clean_phase = EbuildPhase(background=False,
56 phase='clean', scheduler=sched_iface, settings=settings)
57 clean_phase.start()