[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Wed Jul 1 19:05:06 CEST 2009
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 09/07/01 19:05:06
Modified files:
cm3/m3-libs/m3core/src/runtime/POSIX/: RTPerfTool.m3
cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3
cm3/m3-libs/libm3/src/perftool/POSIX/: LowPerfTool.m3
Log message:
switch from vfork to fork
On no system is vfork actually believed faster.
In particular, vfork on Cygwin is just as slow as fork,
and on most/all other systems, fork is fast.
vfork cannot be portably wrapped in C, whereas fork can be.
In particular:
search the web for "opengroup vfork":
http://www.opengroup.org/onlinepubs/009695399/functions/vfork.html
The vfork() function shall be equivalent to fork(), except that
the behavior is undefined if the process created by vfork() either
modifies any data other than a variable of type pid_t used to store
the return value from vfork(), or returns from the function in which
vfork() was called, or calls any other function before successfully
calling _exit() or one of the exec family of functions.
That is:
The caller of vfork cannot return before calling _exit or exec.
A C wrapper would violate that.
More information about the M3commit
mailing list