Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 17054 invoked from network); 7 Jul 2009 16:57:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 7 Jul 2009 16:57:25 -0000 Received: (qmail 22946 invoked by uid 500); 7 Jul 2009 16:57:35 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 22871 invoked by uid 500); 7 Jul 2009 16:57:34 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 22862 invoked by uid 99); 7 Jul 2009 16:57:34 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Jul 2009 16:57:34 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of paul@querna.org designates 209.85.210.198 as permitted sender) Received: from [209.85.210.198] (HELO mail-yx0-f198.google.com) (209.85.210.198) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Jul 2009 16:57:25 +0000 Received: by yxe36 with SMTP id 36so2619732yxe.10 for ; Tue, 07 Jul 2009 09:57:03 -0700 (PDT) MIME-Version: 1.0 Received: by 10.90.82.17 with SMTP id f17mr5297438agb.41.1246985823660; Tue, 07 Jul 2009 09:57:03 -0700 (PDT) In-Reply-To: References: Date: Tue, 7 Jul 2009 12:57:03 -0400 Message-ID: <4239a4320907070957u2adb48b8l6023ecd6ae4b55be@mail.gmail.com> Subject: Re: Events, Destruction and Locking From: Paul Querna To: dev@httpd.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Tue, Jul 7, 2009 at 12:54 PM, Akins, Brian wrote= : > This is how I envisioned the async stuff working. > > -Async event thread is used only for input/output of httpd to/from networ= k* > -After we read the headers, we pass the request/connection to the worker > threads. =C2=A0Each request is "sticky" to a thread. =C2=A0Request stuff = may block, > etc, so this thread pool size is configurable and in mod_status, etc. > -any "writes" out of the request to the clientare passed into the async > thread. =C2=A0This may be wrapped in filters, whatever. > > *We may allow there to be multiple ones of these, ie one for proxies, or > have a very well defined way to add watches to this. > > This is a very simplistic view. =C2=A0I was basically thinking that all c= onn_rec > "stuff" is handled in the async event thread, all the request_rec "stuff"= is > handled in the worker threads. Right, but I think the 'waiting for X' while processing is a very important case, it can get you to a fully async reverse proxy, which opens up lots of possibilities.