Subject: [PATCH 0/5] Miscellaneous improvements on Windows

From: Johannes Sixt <[email-masked]>
Date: Thu, 7 Jan 2010 22:54:56 +0100

This series is actually a set of independent changes that improve
the Windows port. (Except that 2/5 depends on 1/5.)

1/5 and 2/5 enable threaded code on Windows. This topic was discussed
beginning of November. The change to builtin-pack-objects.c was
positively commented (though not formally acked) by Nico:

http://thread.gmane.org/gmane.comp.version-control.git/131998/focus=132239

3/5 removes a static dependency on shell32.dll so that startup time is
reduced. It does reduce the runtime of the test suite ('make -j2 test')
from 16:00min to 12:40min for me.

4/5 (the new pipe implementation) could be considered code churn.
It reduces LOC, but the effect is not noticable during run-time.

5/5 (avoid "dup dance") straightens our run-command implementation a
bit. It is more of the future-proofing kind because it avoids that a
writable pipe end remains accidentally open in a child process, leaving
the reader waiting idenfinetly. This doesn't seem to be a problem
currently, though.

I'm using these patches since November.

Andrzej K. Haczewski (1):
  MSVC: Windows-native implementation for subset of Pthreads API

Johannes Sixt (4):
  MinGW: enable pthreads
  Windows: boost startup by avoiding a static dependency on shell32.dll
  Windows: simplify the pipe(2) implementation
  Windows: avoid the "dup dance" when spawning a child process

 Makefile               |   13 +++--
 builtin-pack-objects.c |   31 +++++++++++--
 compat/mingw.c         |   80 ++++++++++++++++----------------
 compat/mingw.h         |    8 +++-
 compat/win32/pthread.c |  120 ++++++++++++++++++++++++++++++++++++++++++++++++
 compat/win32/pthread.h |   68 +++++++++++++++++++++++++++
 run-command.c          |   71 ++++++++++++----------------
 7 files changed, 300 insertions(+), 91 deletions(-)
 create mode 100644 compat/win32/pthread.c
 create mode 100644 compat/win32/pthread.h