> it ought to work, but it should be setting a per-server cleanup instead of a
> per-request cleanup. see below.
>
Doh!
> basically cleanups are performed when memory allocated for different parts
> of the server lifecycle is destroyed. so, httpd allocates memory for the
> server, per-configuration, per-connection, and per-request. setting up a
> cleanup handler on each will run the handler whenever the memory pool goes
> out of scope.
>
Ok - this starts to make sense.
What I'm trying to achieve is :
- a child init handler which turns on caching (so that the process
is owned by the right user)
- a cleanup handler which cleans out the in memory cache at the end
of each request
I seem to be having a lot of trouble putting them in the same place...
In the config file :
-------------------------------------------------------
PerlRequire "/opt/apache/sites/obits/conf/startup.pl"
## This doesn't work :
PerlChildInitHandler Obits::Dispatcher::activate_cache
<Location / >
SetHandler perl-script
PerlResponseHandler Obits::Dispatcher
## This does work :
PerlCleanupHandler Obits::Dispatcher::cleanup_cache
--------------------------------------------------------
In the startup file:
--------------------------------------------------------
use Apache2::ServerUtil;
# this works:
Apache2::ServerUtil->server->push_handlers(
PerlChildInitHandler => \&activate_cache)
--------------------------------------------------------
But from here, I can't push a cleanup handler that will be called for
every request, can I?
I have it working by using the PerlChildInitHandler in the startup file
and the PerlCleanupHandler in the apache config, but I would prefer to
put both of these into the startup file.
Is it possible? What am I missing?
thanks for your response Geoff
clint