summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-12-28 23:44:39 -0800
committerZac Medico <zmedico@gentoo.org>2012-12-28 23:44:39 -0800
commitd6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff (patch)
treed39eca2338f2772c9c68a5596f2105fc3a43e8a7 /bin
parentc7b3b1fbffb23f30c07fe57946221b62c54c1af9 (diff)
downloadportage-d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.tar.gz
portage-d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.tar.bz2
portage-d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.zip
Use run_main_scheduler where possible.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/egencache62
1 files changed, 7 insertions, 55 deletions
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)