perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: [mp2] pool object dependant methods insanity
Date Wed, 22 Dec 2004 01:41:34 GMT
The things aren't as bad as I thought there are. Here is an update on this 
issue. The key difference to my previous post is: only objects that have 
DESTROY method may need to be dealt with. Below is the analysis of the 
relevant classes and methods.

* we need to deal with a situation where an object is used to
   construct another object, but it's then auto-DESTROYed by perl
   rendering the object that used it corrupted.

   the solution is to make the newly created objects refer to the
   underlying object via magic attachment.

   only objects using objects that have DESTROY are effected, so for
   example in the case of:

   APR::Bucket::eos_create(APR::Bucket::alloc_create(APR::Pool->new)

   the object returned by eos_create shouldn't be affected, since
   alloc_create()'s object doesn't have perl's DESTROY. so only the
   pool object is an issue here (i.e. alloc_create needs special
   handling)

   relevant objects with DESTROY : Apache::SubRequest,
   APR::ThreadMutex, APR::UUID, APR::Pool


   =================
   === APR::Pool ===
   =================
   *** returning objects ***

   APR::Brigade:
   - mpxs_apr_brigade_create

   APR::Bucket:
   - apr_bucket_alloc_create
   - mpxs_APR__Bucket_setaside

   APR::Finfo:
   - mpxs_APR__Finfo_stat

   APR::IpSubnet:
   - mpxs_apr_ipsubnet_create

   APR::Pool:
   - mpxs_apr_pool_create (not sure about this one)

   Apache::RequestUtil:
   - mpxs_Apache__RequestRec_new

   APR::Table:
   - apr_table_copy
   - apr_table_overlay
   - apr_table_make

   APR::ThreadMutex
   - mpxs_apr_thread_mutex_create

   *** returning strings ***

   Apache::ServerUtil
   - mpxs_Apache__ServerUtil_server_root_relative (once this is
     supported, we no longer need to double copy the string)

   Apache::URI:
   - ap_construct_server
   - ap_construct_url

   APR::URI
   - mpxs_apr_uri_parse

   Apache::Util
   - ap_ht_time
   - escape_path


   ==========================
   === Apache::SubRequest ===
   ==========================
   no method uses the object in a way related to the issue in hand

   =================
   === APR::UUID ===
   =================
   no method uses the object in a way related to the issue in hand

   ========================
   === APR::ThreadMutex ===
   ========================
   no method uses the object in a way related to the issue in hand


-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

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


Mime
View raw message