perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Schaefer <joe+gm...@sunstarsys.com>
Subject Re: [mp2] pools that go out of scope aren't a problem anymore?
Date Thu, 02 Dec 2004 07:47:25 GMT
"Philippe M. Chiasson" <gozer@ectoplasm.org> writes:

> my $pool;
> sub handler {
>   my $r = shift;
>   $pool ||= $r->pool; #XXX: Yes, bad bad bad, but still...
>   APR::Table::make($pool, 10); #bam!
> }
>
> The problem in this case is that apache destroyed the request pool at
> the end of the first request. And we now have a valid $pool that now
> points to a freed pool. It's an incorrect usage of the API, I know,
> but the resulting segv isn't nice... 

This is a problem with persistence, not "ownership", and affects the
entirety of mp2's object system.  In other words, there's no reason to 
single out pools in your example, the bug could just as easily been

my $r;

   sub handler {
       $r ||= shift;
       my $pool = $r->pool; #bam!
   }

"Fixing" this problem is certainly a challenge, but IMO not
worth worrying about for 2.0.

-- 
Joe Schaefer


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message