Dave Mitchell wrote: > > On Sun, Aug 17, 2003 at 05:48:14AM -0600, Luke Palmer wrote: > > Here comes that ever-reincarnating thread again, sorry. > > > > This is a proposal for an efficient solution to the timely destruction > > problem, which doesn't use refcounting, and fits in to the current > > scheme pretty well. > > I don't quite follow all the below (probably mainly due to my > infamiliarity with parrot's DOD/GC stuff). > > Would it be possible to illuminate it by explaining how the following > Perl5 code (presumably being executed by Ponie/Parrot) would ensure that > the two destructors are called at the places marked: > > { > my $ref; > { > my $obj1 = Foo->new(...); > my $obj2 = Foo->new(...); > $ref = $obj1; > } # $obj2->DESTROY called here > # ... > } # $obj1->DESTROY called here > # ...
At each of the two end-of-scope braces, a "sweep 0" instruction would be emmited. This performs Dead Object Detection, which at the first "}" detects that $obj2 is dead, and at the second "}" detects that $obj1 is unreachable. -- $a=24;split//,240513;s/\B/ => /for@@=qw(ac ab bc ba cb ca );{push(@b,$a),($a-=6)^=1 for 2..$a/6x--$|;print "[EMAIL PROTECTED] ]\n";((6<=($a-=6))?$a+=$_[$a%6]-$a%6:($a=pop @b))&&redo;}