In article <[EMAIL PROTECTED]>, Zentara wrote:
> On Sun, 12 Oct 2003 08:24:52 +0200, [EMAIL PROTECTED] (Igor
> Ryaboy) wrote:
[...]
> Bear in mind I'm not a "threading expert", just a hacker with ideas. :-)
> Here is a snippet to try. I used a global for $param instead of passing
> it, but you may be able to pass the $param. Also maybe you should check
> out the module Thread::Pool, which manages threads and tasks.
>
> #!/usr/bin/perl
> use threads;
> my @kiddies;
> my $param =10;
>
> while ($param > 0){
> print "$$ starting loop $_";
> push @kiddies, threads->new(\&sub1);
> print "$$ exiting loop $_\n";
> $param--;
> }
>
> sub sub1{
> print "\tchild ", threads->tid(), " created ok using param $param\n";
> sleep(int(rand(10)));
> print "\tchild", threads->tid() , " done, outta here\n";
> }
>
> foreach (@kiddies){ $_->join(); }
> __END__
What does the last line do. I looked at man threads:
$thread->join
This will wait for the corresponding thread to join. When the
thread finishes, join() will return the return values of
the entry point function."
Printing these out (i.e.):
foreach (@kiddies){
$_->join();
print "$_ joined.\n";
}
gives me:
threads=SCALAR(0x81de948) joined.
threads=SCALAR(0x81e180c) joined.
etc.
But what does that mean in slightly plainer English?
-K
--
Kevin Pfeiffer
International University Bremen
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]