svn commit: r212831 - head/lib/libproc

Rui Paulo rpaulo at freebsd.org
Sun Sep 19 09:47:21 UTC 2010


On 19 Sep 2010, at 09:01, pluknet wrote:

> On 19 September 2010 03:38, Rui Paulo <rpaulo at freebsd.org> wrote:
>> Author: rpaulo
>> Date: Sat Sep 18 23:38:21 2010
>> New Revision: 212831
>> URL: http://svn.freebsd.org/changeset/base/212831
>> 
>> Log:
>>  Ignore EINTR when calling waitpid.
>> 
>> Modified:
>>  head/lib/libproc/proc_util.c
>> 
>> Modified: head/lib/libproc/proc_util.c
>> ==============================================================================
>> --- head/lib/libproc/proc_util.c        Sat Sep 18 22:37:47 2010        (r212830)
>> +++ head/lib/libproc/proc_util.c        Sat Sep 18 23:38:21 2010        (r212831)
>> @@ -145,7 +145,8 @@ proc_wstatus(struct proc_handle *phdl)
>>        if (phdl == NULL)
>>                return (-1);
>>        if (waitpid(phdl->pid, &status, WUNTRACED) < 0) {
>> -               warn("waitpid");
>> +               if (errno != EINTR)
>> +                       warn("waitpid");
>>                return (-1);
>>        }
>>        if (WIFSTOPPED(status))
> 
> Hi.
> 
> After this change the waitpid() error handling still doesn't
> ignore EINTR (well, only warn() ignores EINTR now),
> but it rather returns with -1. Is it intentional?
> I though something more like this was meant in svn log:
> 
> while (waitpid(...) < 0)
>    if (errno != EINTR) {
>        warn("waitpid");
>        return (-1);
>    }

Maybe the log was badly worded, but the code is right.


Regards,
--
Rui Paulo




More information about the svn-src-head mailing list