cc: yyyyy@xxxxxxxxxxxxxxxxxxx
Subject: Re: RE: Re: set -e and SIGCHLD
--------
> Thank you Marc,
>
> > To my way of thinking, the solution is clear: have conforming exec()
> > implementations >always< reset SIGC[H]LD dispositions to SIG_DFL, and
> > SA_NOCLDWAIT to zero. This is the only technically sound solution.
This would violate the standard. If I do signal(SIGCHLD,SIG_IGN)
before the exec, then in the child signal(SIGCHLD,...) must return
SIG_IGN according to the standard. However, the implementation
can treat SIG_IGN as if it were SIG_DFL.
The standard seems to be silent as to whether SA_NOCLDWAIT is set
in the new process or not.
>
> One other option tho: an environment variable a la LD_RUN_PATH et al.:
>
> export INHERIT_SIGCHLD_IGNORE=true
>
> for anyone that really, really wants this incomprehensible
> functionality.
I don't think that environment variables should effect the behavior
of system calls.
>
>
David Korn
research!dgk
yyy@xxxxxxxxxxxxxxxx
|