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)?
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html