posix_spawn_wrapper: do not set POSIX_SPAWN_SETSIGDEF flag
authorMike Gilbert <floppym@gentoo.org>
Thu, 24 Oct 2024 16:24:35 +0000 (12:24 -0400)
committerMike Yuan <me@yhndnzj.com>
Thu, 31 Oct 2024 17:16:58 +0000 (18:16 +0100)
commitff94426f8a2d6cd4ea2e370835db152917a1684e
treedbbe906922e7141a3ce3ec04c715b20ed8bb9e47
parent1f9425d1c4f002a1ec44c57509d857bff6b6b85b
posix_spawn_wrapper: do not set POSIX_SPAWN_SETSIGDEF flag

Setting this flag is a noop without a corresponding call to
posix_spawnattr_setsigdefault.

If we call posix_spawnattr_setsigdefault with a full signal set,
it causes glibc's posix_spawn implementation to call sigaction 63 times,
once for each signal. That seems wasteful.

This feature is really only useful for signals which have their
disposition set to SIG_IGN. Otherwise the dispostion gets set to
SIG_DFL automatically, either by clone(CLONE_CLEAR_SIGHAND) or the
subsequent execve.

As far as I can tell, systemd does not have any signals set to SIG_IGN
under normal operating conditions.
src/basic/process-util.c