optimizing fork/exec in vendor source

Jack Andrews effbiae@gmail.com
Fri Oct 10 05:26:00 GMT 2008


hi guys,

i think cygwin is great, and i'd like it to be more useful to me.  my
work for the past year has been porting daemons to windows.  so i'm
familiar with the fork problem.  i've read a little about how cygwin
does a lot of work to make fork work.  -- and to make it work without
having to change the source from the vendor.  i think maybe the vendor
might be changed to make small changes to their source so that cygwin
will run a lot better.

a little example that illustrates cygwin's fork efficiency is:

$ time ls >/tmp/out

real    0m0.131s
user    0m0.062s
sys     0m0.015s

$ time for x in `cat /tmp/out`; do ls -d $x; done >/dev/null

real    0m3.512s
user    0m0.378s
sys     0m0.915s

which kind of kills some simple shell scripts.

in the example, i guess all that is done is to fork and exec ls,
grabbing its stdout.  this can be done with CreateProcess() easily
without having to emulate everything that fork does.  so my real
question is, has anyone tried optimizing fork/exec to CreateProcess()?
 and would the maintainers of (eg. bash) accept a patch for use with
cygwin?  (so i wouldn't have to continually forward port my fork/exec
code).



ta, jack

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list