Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 20564 invoked from network); 1 Mar 2006 14:59:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 1 Mar 2006 14:59:36 -0000 Received: (qmail 37719 invoked by uid 500); 1 Mar 2006 14:59:35 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 37642 invoked by uid 500); 1 Mar 2006 14:59: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 37576 invoked by uid 99); 1 Mar 2006 14:59:34 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 06:59:34 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [204.146.167.214] (HELO Boron.MeepZor.Com) (204.146.167.214) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 06:59:30 -0800 Received: from [9.27.39.45] (dmz-firewall [206.199.198.4]) by Boron.MeepZor.Com (8.12.8/8.12.8) with ESMTP id k21EwdHx022517 for ; Wed, 1 Mar 2006 09:58:59 -0500 Message-ID: <4405B5EA.5050303@apache.org> Date: Wed, 01 Mar 2006 09:55:38 -0500 From: Greg Ames User-Agent: Mozilla Thunderbird 1.0.7-1.4.1 (X11/20050929) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dev@httpd.apache.org Subject: Re: Event MPM accept() handling References: <13c255070603010245t3180de61t@mail.gmail.com> In-Reply-To: <13c255070603010245t3180de61t@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Saju Pillai wrote: > I can understand why serializing apr_pollset_poll() & accept() for the > listener threads doesn't make sense in the event-mpm. A quick look > through the code leaves me confused about the following ... > > It looks like all the listener threads epoll() simultaenously on the > listener sockets + their private set of sockets added to the pollset by > workers. looks like you are correct. originally there was a separate event thread for everything but new connections and the listener thread's accept serialization was the same as worker's. then it seemed like a good idea to merge the listener and event threads, and it only supported a single worker process briefly. since there was only one merged listener/event thread in the whole server there was nothing to serialize at that time. then a few of us grumbled about what happens if some 3rd party module seg faults or leaks memory and we went back to multiple worker processes. > Will apr_pollset_poll() return "success" to each listener if a > new connection arrives on a main listener socket ? If so won't each > listener attempt to accept() the new connection ? I think so, but I'm not a fancy poll expert. Paul? then the question is how bad is it? Greg Greg