core: remove "misuse" of getpgid() in systemd-shutdown

Using `kill()`  with a signal of 0 is a slightly more documented idiom for
checking whether a process still exists.  It is mentioned explicitly in
man pages.  This avoids the need to comment the call as "misuse".
A comment is still necessary - in fact this idiom is even more confusing if
you don't know how it works.  But it's easy enough to explain.
This commit is contained in:
Alan Jenkins 2017-10-30 16:10:37 +00:00
parent 27b8198e13
commit 3448a96980

View file

@ -129,9 +129,9 @@ static void wait_for_children(Set *pids, sigset_t *mask) {
* might not be our child. */
SET_FOREACH(p, pids, i) {
/* We misuse getpgid as a check whether a
* process still exists. */
if (getpgid(PTR_TO_PID(p)) >= 0)
/* kill(pid, 0) sends no signal, but it tells
* us whether the process still exists. */
if (kill(PTR_TO_PID(p), 0) == 0)
continue;
if (errno != ESRCH)