On Tue, 2009-07-07 at 16:01 +0200, Graham Leggett wrote:
> As is httpd prefork :)

Yeah, definitely my favourite MPM :-)

As far as I understand this, the deal is that we need to have a complete
request before we start processing it. Otherwise, we can get stuck and
one of our precious resources is tied up for a long time.

Is there anything stopping us from having not just fds in listen in that
apr_pollset_poll() of prefork.c, but also a bunch of already accepted
fds that are waiting for more data to come in? I'm guessing we'd have to
use ap_process_http_async_connection() and have multiple ptrans pools,
but that should not be all that hard to do.

So, the loop would be:

- poll()
- try assembling a full request from data read so far
  - process if successful
  - go back to poll() if not

Too naive?

-- 
Bojan

Reply via email to