mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
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
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user