Return-Path: Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 63383 invoked by uid 500); 14 Nov 2001 14:17:03 -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: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 63371 invoked from network); 14 Nov 2001 14:17:02 -0000 Message-ID: <009801c16d17$30065000$bc381b09@sashimi> From: "Bill Stoddard" To: , References: <20011113071536.56050.qmail@icarus.apache.org> <20011113173930.A758F46DFD@koj.rkbloom.net> <20011113143720.D1657@waka.ebuilt.net> <20011113223819.3872B46DFD@koj.rkbloom.net> Subject: Re: MPM design abuse (was: cvs commit: httpd-2.0/server/mpm/prefork prefork.c) Date: Wed, 14 Nov 2001 09:18:03 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N > On Tuesday 13 November 2001 02:37 pm, Roy T. Fielding wrote: > > On Tue, Nov 13, 2001 at 09:39:30AM -0800, Ryan Bloom wrote: > > > Don't think of it as removing the socket usage from the MPM. The point of > > > this is to augment what the MPM is doing. Here's my point, the core > > > already does all of the direct network logic. The MPM maps the network > > > to a thread, it doesn't do any real network logic, nor should it. > > > Currently, our MPMs are too close to the network. Also, don't think of > > > MPMs as separate from the core. They are a pluggable part of the core. > > > > The MPM should be responsible for defining the client interface (conn_rec), > > right? Wouldn't it make sense, then, for the MPM to be responsible for > > creating the lowest-layer filter? In other words, maybe we should move > > the code from core to mpm_common, and let some MPMs (like Win's AcceptEx) > > define their own connection management filter. > > I'm starting from a different place I guess. I see the core as defining the client > interface for TCP. The MPM just maps the client interface to a worker thread. > > The way I see it, the core is the beast that is doing all of the actual > communication to the network, the MPM just tells which thread to handle > each request, regardless of where it comes from. Based on the comment > above, if you are going to move anything to the MPM, you will also have > to move the core_input and core_output filters to the MPMs, because they > would be actually implementing the network logic. Not necessarily. I have code to split the network io calls out of core_output_filter and place them in a net_out_filter. The net_out_filter just unconditionally writes brigades to the network. Bill