From: | Zac Medico <zmedico@g.o> | ||
---|---|---|---|
To: | gentoo-portage-dev@l.g.o | ||
Cc: | Bertrand SIMONNET <bsimonnet@××××××××.org> | ||
Subject: | Re: [gentoo-portage-dev] [PATCH] Do not interrupt on SIGCONT | ||
Date: | Thu, 26 Feb 2015 17:06:14 | ||
Message-Id: | 54EF527F.4010501@gentoo.org | ||
In Reply to: | [gentoo-portage-dev] [PATCH] Do not interrupt on SIGCONT by Mike Frysinger |
1 | On 02/25/2015 08:30 PM, Mike Frysinger wrote: |
2 | > From: Bertrand SIMONNET <bsimonnet@××××××××.org> |
3 | > |
4 | > SIGCONT signals should not interrupt any system calls (locking or wait pid for |
5 | > example). |
6 | > |
7 | > URL: http://crbug.com/417800 |
8 | > X-Gentoo-Bug-URL: https://bugs.gentoo.org/500436 |
9 | > --- |
10 | > pym/_emerge/Scheduler.py | 1 + |
11 | > 1 file changed, 1 insertion(+) |
12 | > |
13 | > diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py |
14 | > index d6db311..6e3bf1a 100644 |
15 | > --- a/pym/_emerge/Scheduler.py |
16 | > +++ b/pym/_emerge/Scheduler.py |
17 | > @@ -1017,6 +1017,7 @@ class Scheduler(PollScheduler): |
18 | > earlier_sigterm_handler = signal.signal(signal.SIGTERM, sighandler) |
19 | > earlier_sigcont_handler = \ |
20 | > signal.signal(signal.SIGCONT, self._sigcont_handler) |
21 | > + signal.siginterrupt(signal.SIGCONT, False) |
22 | > |
23 | > try: |
24 | > rval = self._merge() |
25 | > |
26 | |
27 | LGTM. |
28 | |
29 | We already have wrappers to handle EINTR for waitpid and lockf: |
30 | |
31 | https://github.com/gentoo/portage/commit/7c70eea2f607baffcbb9d465c03578d69b09decf |
32 | https://github.com/gentoo/portage/commit/664684f0f17c0f3570ffd9382037994db1ec66bd |
33 | |
34 | I suppose it won't hurt to suppress EINTR though... |
35 | -- |
36 | Thanks, |
37 | Zac |