On Mon, 3 Jun 2002, Doug MacEachern wrote:

> On Mon, 3 Jun 2002, Stas Bekman wrote:
>  
> > Does this mean that any END blocks registered during a request handler, 
> > will be run at the end of it and not at the shutdown? If not where do 
> > they go if PL_endav is getting reset to its pre-request value.
> 
> only if SetHandler is perl-script, PL_endav becomes tied so any END 
> subroutines created during the request are stored not in PL_endav, but in 
> PL_modglobal.  the ModPerl::Global::special_list_* api is then used by 
> ModPerl::Registry to actually invoke or clear the END subroutines that 
> are stashed within PL_modglobal.
> if SetHandler is anything other than perl-script, there is no special 
> treatment of PL_endav and any END subroutines create at request time in 
> this case are run at shutdown.

That part is clear now. I've missed the PL_modglobal bit. Thanks.

What happens to other handlers, which aren't registry? If a handler 
requires some module which has an END block or installs one by itself, 
what happens to it when the handler has done its job. It's stored in 
PL_modglobal but nobody does anything about it. 
 
> > I don't think this is the same as it was in 1.0. I always thought that 
> > only registry scripts were special regarding BEGIN/END blocks. What do I 
> > miss?
> 
> it is exactly the same for END subroutines created under the perl-script 
> handler, only implemented cleaner.
> we have never done anything special for BEGIN blocks.

that's true.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to