diff options
author | Yann Ylavic <ylavic@apache.org> | 2018-09-04 04:40:49 +0200 |
---|---|---|
committer | Yann Ylavic <ylavic@apache.org> | 2018-09-04 04:40:49 +0200 |
commit | 5262e7e73ade018f7849bed760d9fefac9fa9e5f (patch) | |
tree | f8889215d600d6e05d20ee44dd12c9b8567529fe /modules/http | |
parent | Axe spurious comment (added and addressed in r1839997). (diff) | |
download | apache2-5262e7e73ade018f7849bed760d9fefac9fa9e5f.tar.xz apache2-5262e7e73ade018f7849bed760d9fefac9fa9e5f.zip |
core: follow up to r1839997: recycle request filters to a delayed ring first.
We want not only ap_filter_output_pending() to be able to access each pending
filter's *f after the EOR is destroyed, but also each request filter to do
the same until it returns.
So request filters are now always cleaned up into a dead_filters ring which is
merged into spare_filters only when ap_filter_recycle() is called explicitely,
that is in ap_process_request_after_handler() and ap_filter_output_pending().
The former takes care of recycling at the end of the request, with any MPM,
while the latter keeps recycling during MPM event's write completion.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1840002 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http')
-rw-r--r-- | modules/http/http_request.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/http/http_request.c b/modules/http/http_request.c index 1413a20c93..ecd59f3a0c 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -401,6 +401,10 @@ AP_DECLARE(void) ap_process_request_after_handler(request_rec *r) (void)ap_check_pipeline(c, bb, DEFAULT_LIMIT_BLANK_LINES); apr_brigade_cleanup(bb); + if (!c->aborted) { + ap_filter_recyle(c); + } + if (c->cs) { if (c->aborted) { c->cs->state = CONN_STATE_LINGER; |