> 
> There are a number of other cases where we really
> want to create a process
> in a library where we:
> 
>       - don't want a SIGCHLD
>       - don't want "wait on any pid" to reap it
> 
> (Think of system, popen, and others were the library
> really owns the PID)
> 
> Casper

Yes, but these cases are for when the child is
successfully created, not for when it fails along
the way to successfully calling execve().

I have a plan:  Create variants of fork1()/forkall()/vfork()
that pass an integer  argument to the kernel telling it
whether the child's death will be visible to waitpid()
for any case other than P_PID (specific pid) and,
independently, whether generation of the SIGCHLD
signal should be suppressed when the child dies.
(All of the other wait*() interfaces are simply wrappers
around waitpid().)

The traditional fork1()/forkall()/vfork() interfaces would
simply pass zero to the kernel in the libc syscall
wrapper to get the traditional behavior.

Soon, soon...

Roger Faulkner
Sun Microsystems
 
 
This message posted from opensolaris.org

Reply via email to