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() |