On May 16, 5:12pm, dm...@samersoff.net (Dmitry Samersoff) wrote:
-- Subject: Re: vfork instead of fork for fork+exec?
| On BSD vfork() stops parent process until child exited or call exec.
| It's not acceptable in multithreaded environment.
Yes, this could be a problem if the program does not run exec
immediately after vfork(), but in practice most programs run exec,
a couple of dups, and vfork because there is not much else you can
legally do without trashing the state of your parent.
What does vfork() do with other threads? Does it stops it also ?
What happens with mutexes - does the child inherit it?
Yes vfork is a weird syscall, annoying and difficult to use, but please
don't make performance claims without actually doing any tests.