diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-11-16 21:15:00 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-11-16 21:15:00 -0800 |
commit | 39dfd5bf7b0c26c05b568c4538fc85bb9fe3b116 (patch) | |
tree | adffb50f1d140251292c586374aebc5465b46abe | |
parent | b552912a54d0240325c1b3b8bef744ea04a513f8 (diff) | |
download | portage-39dfd5bf7b0c26c05b568c4538fc85bb9fe3b116.tar.gz portage-39dfd5bf7b0c26c05b568c4538fc85bb9fe3b116.tar.bz2 portage-39dfd5bf7b0c26c05b568c4538fc85bb9fe3b116.zip |
pkg_pretend: handle interruption morev2.2.0_alpha75
-rw-r--r-- | pym/_emerge/Scheduler.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index 261fa9569..3b53a3723 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -927,6 +927,7 @@ class Scheduler(PollScheduler): build_dir = EbuildBuildDir(scheduler=sched_iface, settings=settings) build_dir.lock() + current_task = None try: @@ -935,6 +936,7 @@ class Scheduler(PollScheduler): if existing_buildir: clean_phase = EbuildPhase(background=False, phase='clean', scheduler=sched_iface, settings=settings) + current_task = clean_phase clean_phase.start() clean_phase.wait() @@ -956,6 +958,7 @@ class Scheduler(PollScheduler): verifier = BinpkgVerifier(pkg=x, scheduler=sched_iface) + current_task = verifier verifier.start() if verifier.wait() != os.EX_OK: failures += 1 @@ -998,12 +1001,15 @@ class Scheduler(PollScheduler): phase="pretend", scheduler=sched_iface, settings=settings) + current_task = pretend_phase pretend_phase.start() ret = pretend_phase.wait() if ret != os.EX_OK: failures += 1 portage.elog.elog_process(x.cpv, settings) finally: + if current_task is not None and current_task.isAlive(): + current_task.cancel() clean_phase = EbuildPhase(background=False, phase='clean', scheduler=sched_iface, settings=settings) clean_phase.start() |