Ryan Bloom wrote:

[...]

>apr_pool_join is a no-op unless APR_POOL_DEBUG is enabled.  If it isn't
>enabled, which it shouldn't be on production servers, there will be no
>performance penalty for that function.
>

Sorry, I blamed the wrong part of the code, but the core
problem still remains: we don't clean up the subrequest
(and thus don't close file descriptors for included .shtml
files) until top-level .shtml request goes out of scope.
The logic in handle_include() appears to do this on purpose:

                /* destroy the sub request if it's not a nested include
                 * (crumb) */
                if (rr != NULL
                    && ap_get_module_config(rr->request_config,
                       &include_module) != NESTED_INCLUDE_MAGIC) {
                    ap_destroy_sub_req(rr);
                }

What else would break if we destroyed the subreq here,
even in the case of a nested include?

--Brian



Reply via email to