Subprocess fork problem

jurgen.defurne@philips.com jurgen.defurne@philips.com
Wed Sep 3 07:12:00 GMT 2003


Hello,

I am trying to write a Perl program which needs to execute some
processes (builds) in parallel. This program is started in the following
process hierarchy :

- A running cygwin background process, which starts
  - The main build control process, still cygwin, which starts
   - nmake

Through setting the variable PARALLEL, the targets which have to
be built are changed, and for a PARALLEL build, a new cygwin
script is started, but this time through the command shell, using
ftype and assoc, instead of through cygwin.

This script needs to fork some parallel processes, waits for
one to terminate (waitpid(-1, &WNOHANG), then starts another
one, and so on, until the complete batch of process is done.

These parallel processes should redirect their stdout and stderr
to a logfile, so I do

    open(STDOUT, ">", $logfile);

When I do not do the redirect, all is well. When I do redirect the
standard files I get the following error(s) :

    679 [proc] perl 1972 wait_subproc: wait failed. nchildren 1, wait 
1000, Win32 error 6
    729 [proc] perl 1972 wait_subproc: nchildren 1, event[1] 0x104, 
pchildren[0] 0xCB0000, events[0] 0x20, Win32 error 6
  18491 [proc] perl 1972 wait_subproc: pid 2564, dwProcessId 696, hProcess 
0x104, progname 'c:\cygwin\bin\sleep.exe'

For the moment, the machine which has the problem, still runs on
cygwin 1.3.20, I am waiting for 1.5 to stabilise before I completely
replace all my packages on a production machine.

Anybody have a clue ? Could it be that this problem is solved in a later 
release ?

Regards,

Jurgen



--
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