> > 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