Reimplement async procedures using pthreads
commit200a76b74db5c2c75bcf73773cb85c5603ec038e
authorJohannes Sixt <j6t@kdbg.org>
Sat, 6 Mar 2010 15:40:42 +0000 (6 16:40 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 7 Mar 2010 08:37:36 +0000 (7 00:37 -0800)
tree997a47438fe7e1ff3a9f649cc1f720c47dee4111
parent912b26324dbc1eb9500e49c90d271a330cbcb30b
Reimplement async procedures using pthreads

On Windows, async procedures have always been run in threads, and the
implementation used Windows specific APIs. Rewrite the code to use pthreads.

A new configuration option is introduced so that the threaded implementation
can also be used on POSIX systems. Since this option is intended only as
playground on POSIX, but is mandatory on Windows, the option is not
documented.

One detail is that on POSIX it is necessary to set FD_CLOEXEC on the pipe
handles. On Windows, this is not needed because pipe handles are not
inherited to child processes, and the new calls to set_cloexec() are
effectively no-ops.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
run-command.c
run-command.h