This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] manual: don't ignore SIGCHLD when calling waitpid



On 17/04/2019 16:44, Paul Eggert wrote:
> On 4/17/19 12:05 PM, Adhemerval Zanella wrote:
>> My understanding of the example is for interactive shells (shell_is_interactive),
>> the idea is only to get child information to the explicit launched processes done
>> by launch_process, so ignoring and reseting SIGCHLD seems ok.
> 
> Sure, but the problem is that launch_process is used only in the child,
> which means the parent shell always ignores SIGCHLD, so if the parent
> calls do_job_notification it won't get any info about children. Perhaps
> this could be fixed by documenting do_job_notification as requiring that
> SIGCHLD be reenabled before calling it, but that's pretty confusing.

Right, I missed this part indeed.

> 
> Also the proposed change to the manual is not enough, as there's other
> text saying that the sample shell program ignores SIGCHLD. Presumably
> this is to avoid races in the parent shell. But if SIGCHLD causes races
> in the parent, then the parent typically should block SIGCHLD instead of
> ignoring it and similarly for the other signals - otherwise the fact
> that the signals arrived will be lost. So the whole example needs to be
> rethought.
> 

Agreed. 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]