On Sep 4, 2005, at 1:42 PM, Paul Querna wrote:
So, here is a hackish patch to allow easier building of custom core
output filters, for places like the Event MPM.
It uses the APR optional functions to optionally register a
function to
replace the C-O-F.
Thanks, that's a bit cleaner than the hack that I put in to the
event_hooks() callback function.
To complicate the issue a bit, I'm wondering if we should replace
ap_core_output_filter() with a nonblocking version for _all_ MPMs
in 2.3/2.4. The filter could query the MPM properties to decide how
to handle flush and EOC buckets:
- For MPMs with async write completion support, it would setaside
the data and change the connection state to
CONN_STATE_WRITE_COMPLETION
- For MPMs without async write completion, the filter would
do a blocking write of all the data.
A case where something like this might be useful (aside from the
event MPM) is prefork. If people are running prefork because they
need to use non-threadsafe modules, but they're running on
platforms with thread support, adding an optional write completion
thread could yield better scalability.
Brian