diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-12-28 23:44:39 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-12-28 23:44:39 -0800 |
commit | d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff (patch) | |
tree | d39eca2338f2772c9c68a5596f2105fc3a43e8a7 /pym/_emerge/actions.py | |
parent | c7b3b1fbffb23f30c07fe57946221b62c54c1af9 (diff) | |
download | portage-d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.tar.gz portage-d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.tar.bz2 portage-d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.zip |
Use run_main_scheduler where possible.
Diffstat (limited to 'pym/_emerge/actions.py')
-rw-r--r-- | pym/_emerge/actions.py | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 982197b70..a498ae49d 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -55,6 +55,7 @@ from portage._sets.base import InternalPackageSet from portage.util import cmp_sort_key, writemsg, varexpand, \ writemsg_level, writemsg_stdout from portage.util.digraph import digraph +from portage.util._async.run_main_scheduler import run_main_scheduler from portage.util._async.SchedulerInterface import SchedulerInterface from portage.util._eventloop.global_event_loop import global_event_loop from portage._global_updates import _global_updates @@ -1951,35 +1952,10 @@ def action_regen(settings, portdb, max_jobs, max_load): regen = MetadataRegen(portdb, max_jobs=max_jobs, max_load=max_load, main=True) - received_signal = [] - def emergeexitsig(signum, frame): - signal.signal(signal.SIGINT, signal.SIG_IGN) - signal.signal(signal.SIGTERM, signal.SIG_IGN) - portage.util.writemsg("\n\nExiting on signal %(signal)s\n" % \ - {"signal":signum}) - regen.terminate() - received_signal.append(128 + signum) - - earlier_sigint_handler = signal.signal(signal.SIGINT, emergeexitsig) - earlier_sigterm_handler = signal.signal(signal.SIGTERM, emergeexitsig) - - try: - regen.start() - regen.wait() - finally: - # Restore previous handlers - if earlier_sigint_handler is not None: - signal.signal(signal.SIGINT, earlier_sigint_handler) - else: - signal.signal(signal.SIGINT, signal.SIG_DFL) - if earlier_sigterm_handler is not None: - signal.signal(signal.SIGTERM, earlier_sigterm_handler) - else: - signal.signal(signal.SIGTERM, signal.SIG_DFL) - - if received_signal: - sys.exit(received_signal[0]) + signum = run_main_scheduler(regen) + if signum is not None: + sys.exit(128 + signum) portage.writemsg_stdout("done!\n") return regen.returncode |