pkg_pretend: handle interruption more
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index 261fa95..3b53a37 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -927,6 +927,7 @@
build_dir = EbuildBuildDir(scheduler=sched_iface,
settings=settings)
build_dir.lock()
+ current_task = None
try:
@@ -935,6 +936,7 @@
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 @@
verifier = BinpkgVerifier(pkg=x,
scheduler=sched_iface)
+ current_task = verifier
verifier.start()
if verifier.wait() != os.EX_OK:
failures += 1
@@ -998,12 +1001,15 @@
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()