Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: bin/, pym/_emerge/
Date: Sat, 29 Dec 2012 07:46:05
Message-Id: 1356767079.d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff.zmedico@gentoo
1 commit: d6bde84bd02aba99bbf7ee5a6a0e55d2be4216ff
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Sat Dec 29 07:44:39 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Sat Dec 29 07:44:39 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=d6bde84b
7
8 Use run_main_scheduler where possible.
9
10 ---
11 bin/egencache | 62 +++++------------------------------------------
12 pym/_emerge/actions.py | 32 +++---------------------
13 2 files changed, 11 insertions(+), 83 deletions(-)
14
15 diff --git a/bin/egencache b/bin/egencache
16 index 79a996d..110c47d 100755
17 --- a/bin/egencache
18 +++ b/bin/egencache
19 @@ -50,6 +50,7 @@ from portage.cache.cache_errors import CacheError, StatCollision
20 from portage.manifest import guessManifestFileType
21 from portage.package.ebuild._parallel_manifest.ManifestScheduler import ManifestScheduler
22 from portage.util import cmp_sort_key, writemsg_level
23 +from portage.util._async.run_main_scheduler import run_main_scheduler
24 from portage.util._eventloop.global_event_loop import global_event_loop
25 from portage import cpv_getkey
26 from portage.dep import Atom, isjustname
27 @@ -357,34 +358,9 @@ class GenCache(object):
28 level=logging.ERROR, noiselevel=-1)
29
30 def run(self):
31 -
32 - received_signal = []
33 -
34 - def sighandler(signum, frame):
35 - signal.signal(signal.SIGINT, signal.SIG_IGN)
36 - signal.signal(signal.SIGTERM, signal.SIG_IGN)
37 - self._regen.terminate()
38 - received_signal.append(128 + signum)
39 -
40 - earlier_sigint_handler = signal.signal(signal.SIGINT, sighandler)
41 - earlier_sigterm_handler = signal.signal(signal.SIGTERM, sighandler)
42 -
43 - try:
44 - self._regen.start()
45 - self._regen.wait()
46 - finally:
47 - # Restore previous handlers
48 - if earlier_sigint_handler is not None:
49 - signal.signal(signal.SIGINT, earlier_sigint_handler)
50 - else:
51 - signal.signal(signal.SIGINT, signal.SIG_DFL)
52 - if earlier_sigterm_handler is not None:
53 - signal.signal(signal.SIGTERM, earlier_sigterm_handler)
54 - else:
55 - signal.signal(signal.SIGTERM, signal.SIG_DFL)
56 -
57 - if received_signal:
58 - sys.exit(received_signal[0])
59 + signum = run_main_scheduler(self._regen)
60 + if signum is not None:
61 + sys.exit(128 + signum)
62
63 self.returncode |= self._regen.returncode
64
65 @@ -1058,33 +1034,9 @@ def egencache_main(args):
66 max_load=options.load_average,
67 event_loop=event_loop)
68
69 - received_signal = []
70 -
71 - def sighandler(signum, frame):
72 - signal.signal(signal.SIGINT, signal.SIG_IGN)
73 - signal.signal(signal.SIGTERM, signal.SIG_IGN)
74 - received_signal.append(128 + signum)
75 - scheduler.terminate()
76 -
77 - earlier_sigint_handler = signal.signal(signal.SIGINT, sighandler)
78 - earlier_sigterm_handler = signal.signal(signal.SIGTERM, sighandler)
79 -
80 - try:
81 - scheduler.start()
82 - scheduler.wait()
83 - finally:
84 - # Restore previous handlers
85 - if earlier_sigint_handler is not None:
86 - signal.signal(signal.SIGINT, earlier_sigint_handler)
87 - else:
88 - signal.signal(signal.SIGINT, signal.SIG_DFL)
89 - if earlier_sigterm_handler is not None:
90 - signal.signal(signal.SIGTERM, earlier_sigterm_handler)
91 - else:
92 - signal.signal(signal.SIGTERM, signal.SIG_DFL)
93 -
94 - if received_signal:
95 - sys.exit(received_signal[0])
96 + signum = run_main_scheduler(scheduler)
97 + if signum is not None:
98 + sys.exit(128 + signum)
99
100 if options.tolerant:
101 ret.append(os.EX_OK)
102
103 diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
104 index 982197b..a498ae4 100644
105 --- a/pym/_emerge/actions.py
106 +++ b/pym/_emerge/actions.py
107 @@ -55,6 +55,7 @@ from portage._sets.base import InternalPackageSet
108 from portage.util import cmp_sort_key, writemsg, varexpand, \
109 writemsg_level, writemsg_stdout
110 from portage.util.digraph import digraph
111 +from portage.util._async.run_main_scheduler import run_main_scheduler
112 from portage.util._async.SchedulerInterface import SchedulerInterface
113 from portage.util._eventloop.global_event_loop import global_event_loop
114 from portage._global_updates import _global_updates
115 @@ -1951,35 +1952,10 @@ def action_regen(settings, portdb, max_jobs, max_load):
116
117 regen = MetadataRegen(portdb, max_jobs=max_jobs,
118 max_load=max_load, main=True)
119 - received_signal = []
120
121 - def emergeexitsig(signum, frame):
122 - signal.signal(signal.SIGINT, signal.SIG_IGN)
123 - signal.signal(signal.SIGTERM, signal.SIG_IGN)
124 - portage.util.writemsg("\n\nExiting on signal %(signal)s\n" % \
125 - {"signal":signum})
126 - regen.terminate()
127 - received_signal.append(128 + signum)
128 -
129 - earlier_sigint_handler = signal.signal(signal.SIGINT, emergeexitsig)
130 - earlier_sigterm_handler = signal.signal(signal.SIGTERM, emergeexitsig)
131 -
132 - try:
133 - regen.start()
134 - regen.wait()
135 - finally:
136 - # Restore previous handlers
137 - if earlier_sigint_handler is not None:
138 - signal.signal(signal.SIGINT, earlier_sigint_handler)
139 - else:
140 - signal.signal(signal.SIGINT, signal.SIG_DFL)
141 - if earlier_sigterm_handler is not None:
142 - signal.signal(signal.SIGTERM, earlier_sigterm_handler)
143 - else:
144 - signal.signal(signal.SIGTERM, signal.SIG_DFL)
145 -
146 - if received_signal:
147 - sys.exit(received_signal[0])
148 + signum = run_main_scheduler(regen)
149 + if signum is not None:
150 + sys.exit(128 + signum)
151
152 portage.writemsg_stdout("done!\n")
153 return regen.returncode