Re: Calling a object method in a create()
[email protected] ("Jerry D. Hedden") Mon, 14 Jul 2008 11:41:28 -0400
| Newsgroups | perl.ithreads |
|---|---|
| Message-ID | <[email protected]> |
Valter Douglas Lisb=F4a Jr. wrote:
> The code bellow functions very nice.
>
> ---------------------
> while(my ($id, $ep, $local, $tolerance, $lasterr, $hostscount) =3D
> $sthLocals->fetchrow_array()) {
> $self->localPolling($id, $ep, $local, $tolerance, $lasterr, $hostscount)=
;
> }
> ---------------------
>
> But if I try to execute with a thread:
>
> ---------------------
> while(my ($id, $ep, $local, $tolerance, $lasterr, $hostscount) =3D
> $sthLocals->fetchrow_array()) {
> my $thr =3D threads->create($self->localPooling, $id, $ep, $local, $tole=
rance,
> $lasterr, $hostscount);
> }
> ---------------------
>
> It returns a error:
> Can't locate object method "localPooling" via package "Poller::Check"!
Try
while (my ($id, $ep, $local, $tolerance, $lasterr, $hostscount)
=3D $sthLocals->fetchrow_array())
{
my $thr =3D threads->create(sub {
$self->localPooling($id, $ep, $local, $tolerance, $lasterr,
$hostscount);
});
}