From: Gurusamy Sarathy Date: Wed, 16 Aug 2000 23:46:57 +0000 (+0000) Subject: check that the number pseudo children doesn't exceed X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7a9556019f9c4641b3caa83c80f9a1ded5afaaa8;p=p5sagit%2Fp5-mst-13.2.git check that the number pseudo children doesn't exceed MAXIMUM_WAIT_OBJECTS, which is currently 64 (avoids overflowing the WaitForMultipleObjects() limit that would cause wait() to crash) wait() and waitpid() could potentially be rewritten to use more than one thread to do the waiting to eliminate this limitation p4raw-id: //depot/perl@6656 --- diff --git a/win32/perlhost.h b/win32/perlhost.h index ea0d31d..3b1d8ca 100644 --- a/win32/perlhost.h +++ b/win32/perlhost.h @@ -1746,7 +1746,13 @@ PerlProcFork(struct IPerlProc* piPerl) #ifdef USE_ITHREADS DWORD id; HANDLE handle; - CPerlHost *h = new CPerlHost(*(CPerlHost*)w32_internal_host); + CPerlHost *h; + + if (w32_num_pseudo_children >= MAXIMUM_WAIT_OBJECTS) { + errno = EAGAIN; + return -1; + } + h = new CPerlHost(*(CPerlHost*)w32_internal_host); PerlInterpreter *new_perl = perl_clone_using((PerlInterpreter*)aTHXo, 1, h->m_pHostperlMem, h->m_pHostperlMemShared,