[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