in reply to How to share huge data structure between threads?
My problem is that threads::shared can't share complex data structures and objects. How can this be solved?I don't advocate this solution nor am I proud of it, but ...
Now just look into the little memory-wiping stick ... *flash*.use threads; use threads::shared; use Devel::Pointer; { package foo; sub new { bless [rand 100] } sub blah { print "in blah()\n" } } my $obj = foo->new(); $obj->blah(); print "$obj: @$obj\n"; my $o : shared = address_of($obj); $t = threads->new(sub { print "\tin thread\n\t"; my $obj2 = deref($o); $obj2->blah(); print "\t$obj2: @$obj2\n"; }); $t->join; __output__ in blah() foo=ARRAY(0x804beec): 43.5769482822256 in thread in blah() foo=ARRAY(0x804beec): 43.5769482822256
_________
broquaint
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re:^2 How to share huge data structure between threads?
by ph0enix (Friar) on Jan 14, 2003 at 11:51 UTC |