From: Chris Packham <judge.packham@gmail.com>
To: Johannes Sixt <j.sixt@viscovery.net>,
Jeremiah Mahler <jmmahler@gmail.com>,
git@vger.kernel.org
Subject: Re: [PATCH 0/5] replace signal() with sigaction()
Date: Wed, 28 May 2014 20:11:48 +1200 [thread overview]
Message-ID: <53859A44.7040806@gmail.com> (raw)
In-Reply-To: <53859307.8080506@viscovery.net>
On 28/05/14 19:40, Johannes Sixt wrote:
> Am 5/28/2014 8:14, schrieb Jeremiah Mahler:
>> From signal(2)
>>
>> The behavior of signal() varies across UNIX versions, and has also var‐
>> ied historically across different versions of Linux. Avoid its use:
>> use sigaction(2) instead. See Portability below.
>>
>> This patch set replaces calls to signal() with sigaction() in all files
>> except sigchain.c. sigchain.c is a bit more complicated than the others
>> and will be done in a separate patch.
>
> In compat/mingw.c we have:
>
> int sigaction(int sig, struct sigaction *in, struct sigaction *out)
> {
> if (sig != SIGALRM)
> return errno = EINVAL,
> error("sigaction only implemented for SIGALRM");
> if (out != NULL)
> return errno = EINVAL,
> error("sigaction: param 3 != NULL not implemented");
>
> timer_fn = in->sa_handler;
> return 0;
> }
>
> Notice "only implemented for SIGALRM". Are adding the missing signals
> somewhere (here or in a later patch)?
>
* note: not a windows/mingw programmer *
Will the ones setting SIG_IGN be OK? Presumably we won't get these
signals on windows anyway so we're already getting what we want.
>> Jeremiah Mahler (5):
>> progress.c: replace signal() with sigaction()
>> daemon.c run_service(): replace signal() with sigaction()
>> daemon.c child_handler(): replace signal() with sigaction()
>> daemon.c service_loop(): replace signal() with sigaction()
>> connect.c: replace signal() with sigaction()
>>
>> connect.c | 5 ++++-
>> daemon.c | 15 ++++++++++++---
>> progress.c | 6 +++++-
>> 3 files changed, 21 insertions(+), 5 deletions(-)
>
> Isn't this a bit too much of code churn, given that there were no bug
> reports where signal handling is identified as the culprit despite
> the warning you cited above?
>
> -- Hannes
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2014-05-28 8:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-28 6:14 [PATCH 0/5] replace signal() with sigaction() Jeremiah Mahler
2014-05-28 6:14 ` [PATCH 1/5] progress.c: " Jeremiah Mahler
2014-05-28 8:07 ` Chris Packham
2014-05-28 8:19 ` David Kastrup
2014-05-28 8:48 ` Erik Faye-Lund
2014-05-28 9:11 ` David Kastrup
2014-05-28 17:35 ` Junio C Hamano
2014-05-28 15:45 ` Jeremiah Mahler
2014-05-28 6:14 ` [PATCH 2/5] daemon.c run_service(): " Jeremiah Mahler
2014-05-28 6:14 ` [PATCH 3/5] daemon.c child_handler(): " Jeremiah Mahler
2014-05-28 6:14 ` [PATCH 4/5] daemon.c service_loop(): " Jeremiah Mahler
2014-05-28 6:14 ` [PATCH 5/5] connect.c: " Jeremiah Mahler
2014-05-28 7:40 ` [PATCH 0/5] " Johannes Sixt
2014-05-28 8:11 ` Chris Packham [this message]
2014-05-28 8:23 ` Erik Faye-Lund
2014-05-28 16:11 ` Jeremiah Mahler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53859A44.7040806@gmail.com \
--to=judge.packham@gmail.com \
--cc=git@vger.kernel.org \
--cc=j.sixt@viscovery.net \
--cc=jmmahler@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.