Re: system(3) semantics when SIGCHLD is SIG_IGN'd

2023-08-19 Thread David Holland
On Sat, Aug 12, 2023 at 11:58:36AM +, Taylor R Campbell wrote: > What should system(3) do when the signal action for SIGCHLD is > SIG_IGN, or has SA_NOCLDWAIT set? > [...] My suggestion would be invent a new working mechanism for disowning children and banish the mess to COMPAT_POSIX_MISTAK

Re: system(3) semantics when SIGCHLD is SIG_IGN'd

2023-08-13 Thread Taylor R Campbell
> Date: Sun, 13 Aug 2023 13:03:09 +0200 > From: Rhialto > > On Sat 12 Aug 2023 at 11:58:36 +, Taylor R Campbell wrote: > > Cons: > > - POSIX doesn't ask system(3) to work when SIGCHLD is set to SIG_IGN > > or when it has SA_NOCLDWAIT set, so this code is nonportable anyway; > > I read thro

Re: system(3) semantics when SIGCHLD is SIG_IGN'd

2023-08-13 Thread Rhialto
On Sat 12 Aug 2023 at 11:58:36 +, Taylor R Campbell wrote: > Cons: > - POSIX doesn't ask system(3) to work when SIGCHLD is set to SIG_IGN > or when it has SA_NOCLDWAIT set, so this code is nonportable anyway; I read through https://pubs.opengroup.org/onlinepubs/007908799/xsh/system.html and

Re: system(3) semantics when SIGCHLD is SIG_IGN'd

2023-08-12 Thread Taylor R Campbell
> Date: Sat, 12 Aug 2023 22:48:05 -0400 (EDT) > From: Mouse > > > If the calling process has SA_NOCLDWAIT set or has SIGCHLD set to > > SIG_IGN, [...] > > Check my understanding: this applies to wait(2), but not alternatives > like waitpid(2) or wait4(2), right? If you read all the way

Re: system(3) semantics when SIGCHLD is SIG_IGN'd

2023-08-12 Thread Mouse
> What should system(3) do when the signal action for SIGCHLD is > SIG_IGN, or has SA_NOCLDWAIT set? Exec GNU emacs running the Towers of Hanoi? :-) Figuring out whether you (=NetBSD) want it to "work" is, it seems to me, the first priority. I'm not sure where I fall on that question. On the one

Re: system(3) semantics when SIGCHLD is SIG_IGN'd

2023-08-12 Thread Rhialto
On Sat 12 Aug 2023 at 11:58:36 +, Taylor R Campbell wrote: > So if a process already has a child, and calls system(3) as it is > currently implemented in libc in ~all versions of NetBSD, system(3) > will hang indefinitely until the existing child exits. I thought of a strategy that doesn't see