For 2.1, I'd like to change the way in which request pools are destroyed. Currently, it's possible for a request to be destroyed before the entire response is set.
My proposed changes are: - Create each top-level request pool as a free-standing pool, rather than a subpool of the connection pool. - After generating the response, don't destroy the request pool. Instead, create a metadata bucket that points to the request_rec and send this bucket through the output filter chain. - In the core_output_filter, once everything before this metadata bucket is sent, run the logger and then destroy the request pool. Motivation: - Facilitate the development of event-based MPMs in which worker threads hand off a request to I/O completion threads. - Reduce the need for bucket setaside in the output filters, which has been a source of many errors in 2.0. - Improve the accuracy of I/O measurements (like mod_logio) by delaying the logging until after the request is actually sent. Comments welcome... Thanks, Brian
