On Mon, Dec 10, 2007 at 02:22:45PM -0500, Daniel Jacobowitz wrote: > On Mon, Dec 10, 2007 at 11:18:57AM -0800, Joe Buck wrote: > > While the standard's wording might need fixing, with every implementation > > of vfork I know of, there are no threads. It's a mechanism for systems > > that don't support fork (or that can only do fork in a horribly > > inefficient way, say because there's no MMU, and no support for copy on > > write), but that support the creation of new processes. > > No, Dave's right. On GNU/Linux you can have two threads running on > different processors simultaneously calling vfork. And even with an > MMU it is considerably more efficient than requiring setup of a new > copy-on-write page table.
Yes, that's true. And of course some implementation might map vfork to fork, which complies with standards. I only meant to talk about races between parent and child "process".