hi i have an example script in which i'm trying to share a pre-created object.
the problem i can't do that.#!/usr/bin/perl use strict; use threads; use threads::shared; use tmp; my $rf = tmp->new(); share(my @data); my @threads; for ( my $count = 1; $count <= 10; $count++) { my $t = threads->new(\&sub1, $count); push(@threads,$t); } foreach (@threads) { my $num = $_->join; print "done with $num -- @data\n"; } print "End of main program @data\n"; sub sub1 { my $num = shift; print "started thread $num\n"; print "done with thread $num\n"; push (@data,$rf); return $num; } -------------- module tmp.pm package tmp; sub new { my ($class)=@_; my $hash = {}; bless ($hash,$class); } sub _test { my ($self,$arg) = @_; print "testic $arg\n"; } 1;
is there a way to cheat this!thread failed to start: Invalid value for shared scalar at ./test.pl
thnx
In reply to [threads] Sharing object through threads by baxy77bax
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |