httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: cvs commit: apache-2.0/htdocs/manual/developer layeredio.html index.html
Date Sun, 26 Mar 2000 16:18:01 GMT

> Absolutely!
> As a module writer, I should not be concerned with layered I/O. Not at
> all!

You're not.  Two things have changed for module writers.

1)  You must call ap_setup_input before you try to read data.  (This sets
up the request_rec so that you can find the data from previous modules or
from disk.  If you would like, this could be moved to the top of
ap_invoke_handler, and this step wouldn't even be necessary for module

2)  You must tell future modules where to read the data from.  This too
could be moved away from the handlers if you would like, but not nearly as

> Modules that are interested in inserting a layer should do so during the
> request processing. Content-generating modules should continue to use
> ap_get_client_block() for reading, and ap_r* for writing. Layers should be
> underneath those covers.
> -1 on layered I/O if it is visible to a content-generating module.

If you think layered I/O can be done without the module writers knowing
about it, I would love to know how that is going to be done without
killing out performance.  I had a couple of ways of doing the I/O layers,
but any method that hid the layers from the module writers required a
buffer to write to and read from that killer performance and increased our
memory size expoentially.

If you can figure out how to do this, go ahead.  I tried to meet those
goals for two days, and couldn't fit it into the current scheme (without
destroying performance).  This works great, and provides layered I/O for
anybody who wants to use it.


Ryan Bloom               
406 29th St.
San Francisco, CA 94131

View raw message