cvs commit: src/include Makefile spawn.h unistd.h src/lib/libc/gen Makefile.inc Symbol.map exec.3 exec.c posix_spawn.c

David Xu davidxu at freebsd.org
Wed Jun 18 01:43:10 UTC 2008


David Xu wrote:

> I just want to make some programs to work, since Linux and Solaris
> both have it now. Doing it in kernel is OK, but I don't want to put
> it into the kernel until it is necessary since kernel code can not
> be swapped out. ;-)
> 
> Doing in kernel may have advantages, for example, you may get ride
> of zoombie process recycling by hacking kernel, a library version
> using vfork will need parent to handle SIGCHLD and recycle zoombie 
> process like you use popen() and system() etcs,

Oops, I rethinked it, zoombie process is not a correct point.
only rtld is the problem.

> another advantage
> is it won't involve rtld if a symbol needs to resolved, because
> vfork shares same vmspace, it might block other threads in
> parent process if the child process holding a rtld's
> reader lock, I don't know if writer lock will be held in child,
> I guess it won't be. if the child process get killed wrongly
> by someone, it might hold reader lock forever, this is the race
> condition. a kernel version may have trouble if something can not
> be easily done in kernel, though I didn't find the one can not
> be done in kernel at present.
> 
> Regards,
> David Xu
> 
> 



More information about the cvs-src mailing list