Junio C Hamano, Sun, Nov 18, 2007 01:42:11 +0100:
Johannes Sixt [off-list ref] writes:
quoted
This change again originates from the MinGW port. Since we don't
have fork(2) on Windows, we must run the sideband demultiplexer
in a thread.
If the rationale was "running in a thread is more natural on the
platform", I would understand it.
But "_must_ run because there is no fork(2)" solicits a "Huh?
How does Cygwin does it then?" from me.
You wont believe it: they start the currently running program again
and copy parents memory over into the child. Sometimes it fails.
If you want something scary:
http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/fork.cc?rev=1.193&content-type=text/x-cvsweb-markup&cvsroot=src