Johannes Sixt [off-list ref] writes:
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.
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
On Sunday 18 November 2007 01:42, Junio C Hamano wrote:
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.
Please take it as such.
But "_must_ run because there is no fork(2)" solicits a "Huh?
How does Cygwin does it then?" from me.
Alex has answered this. We are not going to copy Cygwin's fork() into git.
-- Hannes