> On Feb 18, 2004, at 3:50 PM, Papo Napolitano wrote:
>
> > Hi!
> >
> > I'm using the "select undef, undef, undef, 60" trick to sleep for 60
> > seconds.
> > But it seems to not work after I do a couple of forks like this:
> >
> > while (1) {
> > Fork('sub1');
> > Fork('sub2');
> > Fork('sub3');
> > select undef, undef, undef, 60;
>
> This can be simplified to:
>
> sleep 60;
>
> > }
> >
> > "Fork" just fork and run the supplied sub in the new child, returning
> > to the
> > parent.
> > Any clue as to what could be causing this behaviour?
>
> Let's see the Fork() subroutine please. I suspect the problem is
> there. You're forking multiple times inside an infinite loop, which is
> plenty scary. If you're not exiting child processes properly, that's
> going to get big fast.
>
> James
Heh, sorry... I simplified the code...
I'm still not posting the full source because it's like 15 files :(
while (1) {
Fork("Whatever");
sleep 60;
}
sub Fork {
my $module = shift;
my @params = @_;
my $pid = fork;
return $pid if $pid;
$module->Run(@params);
exit;
}
The modules I'm testing are only this:
package Whatever;
sub Run {
my $self = shift;
my $param = shift;
print STDERR "$self: $param\n";
exit;
}
Uhmmm, sleep isn't working neither...
Thanks!
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>