posix_spawn for cygwin
C Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
Makefile
README
bench.sh
cygspawn.c
cygspawn.def
cygspawn.h
listvma.c
testspawn.c

README

cygwin project provides an efficient and POSIX-compliant "user-mode"
implementation of posix_spawn [1] for Cygwin.  Using this facility
improves process-creation performance considerably, especially for
large processes:

    ~/cygspawn
    $ sh bench.sh
    + env ITER=1000 ./testspawn true

    real    0m4.508s
    user    0m1.275s
    sys     0m2.675s
    + env ITER=1000 ./testfork true

    real    0m8.845s
    user    0m2.847s
    sys     0m5.230s
    + env ITER=1000 JUNKBYTES=209715200 ./testspawn true

    real    0m5.179s
    user    0m1.550s
    sys     0m2.661s
    + env ITER=1000 JUNKBYTES=209715200 ./testfork true

    real    1m57.523s
    user    0m3.049s
    sys     1m52.339s

All posix_spawn functionality is supported, and no special
configuration is required.  This library must be dynamically linked
into any program using POSIX spawn.

To install:

    make
    make install prefix=/usr

To build programs with posix_spawn:

    gcc -o foo foo.c -lcygspawn

[1] http://pubs.opengroup.org/onlinepubs/009695399/functions/posix_spawn.html