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

Reply via email to