[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12980: 24.3.50; Zombie process left after call-process
From: |
Paul Eggert |
Subject: |
bug#12980: 24.3.50; Zombie process left after call-process |
Date: |
Thu, 29 Nov 2012 12:28:24 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 |
On 11/29/12 10:04, Eli Zaretskii wrote:
>> + /* CHILD must be a child process that has not been reaped, and
>> + STATUS and OPTIONS must be valid. */
>> + eassert (errno == EINTR);
>
> Are we sure that either CHILD will have exited at this point, or else
> OPTIONS won't include WNOHANG?
It's unlikely that CHILD will have exited at this point. That can
happen only if CHILD exited after the immediately-preceding waitpid
call and before this eassert. In such a case, CHILD has exited but
has not been reaped.
It's common for OPTIONS to not include WNOHANG (wait_for_termination
does this), and when that happens it's almost always the case that
CHILD has not exited at this point.
> Can this function be ever called if
> neither of these conditions is true?
By "this function" I assume you mean get_child_status. Yes, it's
quite common. For example, Fcall_process invokes wait_for_termination,
and it's common for wait_for_termination to invoke get_child_status
before CHILD has exited, and without WNOHANG in OPTIONS.