From: andrewd AT axonet DOT com DOT au (Andrew Dalgleish) Subject: RE: error when maxing out processes 4 Jun 1998 00:41:50 -0700 Message-ID: <91A8FD196436D1118EC2006008186C96098E4F.cygnus.cygwin32.developers@server1.axonet.com.au> To: cygwin32-developers AT cygnus DOT com > -----Original Message----- > From: Sergey Okhapkin [SMTP:sos AT prospect DOT com DOT ru] > Sent: 1998 June 04, Thursday 16:08 > To: cygwin32-developers AT cygnus DOT com; 'Tim Newsham' > Subject: RE: error when maxing out processes > > Tim Newsham wrote: > > I notice an internal cygwin error being displayed when I max > > out the process table. The error: > > > > wait_subproc: wait failed. nchildren 64, wait -1, err 87 > > > > It's not possible to wait more than 63 childs, because of > WaitForMultipleObjects() call limitation (the maximum number of > handles to > wait is 64). [Andrew Dalgleish] Windows Developers Journal October 97 had an article by Jason Clark titled "Waiting for More Than 64 Objects". The basic idea is to create multiple threads, each thread waits for 64 objects. The example code (ftp://ftp.mfi.com/pub/windev/1997/oct97.zip) was limited to 4032 objects. I've seen other articles which describe similar approaches. > I think fork() call should fail when nchildren >= 63. Also, > sysconf(_SC_CHILD_MAX) should return 63. [Andrew Dalgleish] Which is probably more realistic. Who needs 4k children?