Perl failure

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Thu Jul 20 20:09:00 GMT 2006


On Wed, Jul 19, 2006 at 12:08:24PM +0200, Corinna Vinschen wrote:
>On Jul 18 17:45, Bruce Dobrin wrote:
>> Hi, 
>> I stripped down the code to a small testable bit. The problem seems to
>> occur when I reach 256 forks on a cygwin1.5.18 or 19 but not on my
>> cygwin1.5.5. win2k system. The original code give the forked process
>> time to finish, but it still looks like it eats it after about 256
>> iterations ( it actually failed between 259 and 252 iterations, but
>> it's pretty complicated so I'm not sure what else was happening).
>>>> Here is my test code:
>> dobrin@tiburon:/tmp> cat test8.pl 
>> ################
>> #!/usr/bin/perl -w
>>>> use strict;
>> my $pid;
>>>> foreach my $incr (`seq 1 1 800`) {
>>>> unless (defined ($pid = fork)) {
>> die " cannot fork $!";
>> }
>> unless ($pid) {
>> print " the sequence is $incr \n";
>> exit;
>> }
>> print "pid is $pid\n";
>> }
>>>> ###############
>>>> The error here is :
>> cannot fork Resource temporarily unavailable at ./test8.pl line 11.
>> panic: MUTEX_LOCK (45) [op.c:354].
>>>> On cygwin1.5.5 it finishes successfully. I'm not sure if there is
>> anything else I can try, I'm looking around for some other machines
>> with older cygwins on them to establish what version it stopped working
>> in.
>>Lots and lots of changes has been made between 1.5.5 and 1.5.20. I don't
>recall what was different in relation to process handling, especially
>because that's cgf's domain, not mine.
>>But I can tell you that the above perl script is missing a crucial
>point. The parent doesn't reap its children using wait. As a result,
>the parent has references to its children which just add up, since it
>gets no chance to drop the references.
>>For quite some time each Cygwin process has a maximum number of 256
>active children.

Actually, for 1.5.5, the limit was probably 62 or 63.
cgf
--
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

AltStyle によって変換されたページ (->オリジナル) /