Stas Bekman <[EMAIL PROTECTED]> writes:
Now cleanup_register() ties a perl interpreter and doesn't release it until that cleanup handler is run. So that call: $base_server_pool->cleanup_register(sub { Apache::OK }); was tieing an interpreter, but wasn't releasing it (since the pool is freed at the child_exit only). And therefore we had a lack of available interpreters and voil� the problem we had that we all saw.
I'll fix that shortly in the way suggested in my previous followup.
++stas, nice work here!
Thanks :)
So the new function is:
Apache::ServerUtil::server_shutdown_register_cleanup()
The only minor problem is that I had to duplicate code from APR_Pool.h:
/* XXX: the mpxs_cleanup_t and mpxs_cleanup_run are almost dups with * code in APR__Pool.h (minus interpr member which is not used * here. They should be moved to modperl_common_util - the problem is * modperl_interp_t *, which can't live in modperl_common_* since it * creates a dependency on mod_perl. A possible solution is to use * void * for that slot and cast it to modperl_interp_t * when used */
Anybody wants to tackle this? I think the pool stuff is still dependent on mod_perl, since it has modperl_interp_t in it.
-- __________________________________________________________________ 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]
