From d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 28 Dec 2012 23:44:39 -0800 Subject: Use run_main_scheduler where possible. --- bin/egencache | 62 +++++++---------------------------------------------------- 1 file changed, 7 insertions(+), 55 deletions(-) (limited to 'bin') diff --git a/bin/egencache b/bin/egencache index 79a996d75..110c47dcd 100755 --- a/bin/egencache +++ b/bin/egencache @@ -50,6 +50,7 @@ from portage.cache.cache_errors import CacheError, StatCollision from portage.manifest import guessManifestFileType from portage.package.ebuild._parallel_manifest.ManifestScheduler import ManifestScheduler from portage.util import cmp_sort_key, writemsg_level +from portage.util._async.run_main_scheduler import run_main_scheduler from portage.util._eventloop.global_event_loop import global_event_loop from portage import cpv_getkey from portage.dep import Atom, isjustname @@ -357,34 +358,9 @@ class GenCache(object): level=logging.ERROR, noiselevel=-1) def run(self): - - received_signal = [] - - def sighandler(signum, frame): - signal.signal(signal.SIGINT, signal.SIG_IGN) - signal.signal(signal.SIGTERM, signal.SIG_IGN) - self._regen.terminate() - received_signal.append(128 + signum) - - earlier_sigint_handler = signal.signal(signal.SIGINT, sighandler) - earlier_sigterm_handler = signal.signal(signal.SIGTERM, sighandler) - - try: - self._regen.start() - self._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(self._regen) + if signum is not None: + sys.exit(128 + signum) self.returncode |= self._regen.returncode @@ -1058,33 +1034,9 @@ def egencache_main(args): max_load=options.load_average, event_loop=event_loop) - received_signal = [] - - def sighandler(signum, frame): - signal.signal(signal.SIGINT, signal.SIG_IGN) - signal.signal(signal.SIGTERM, signal.SIG_IGN) - received_signal.append(128 + signum) - scheduler.terminate() - - earlier_sigint_handler = signal.signal(signal.SIGINT, sighandler) - earlier_sigterm_handler = signal.signal(signal.SIGTERM, sighandler) - - try: - scheduler.start() - scheduler.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(scheduler) + if signum is not None: + sys.exit(128 + signum) if options.tolerant: ret.append(os.EX_OK) -- cgit v1.2.3-1-g7c22