From commits-return-8113-apmail-apr-commits-archive=apr.apache.org@apr.apache.org Fri Jan 26 20:04:49 2007 Return-Path: Delivered-To: apmail-apr-commits-archive@www.apache.org Received: (qmail 67787 invoked from network); 26 Jan 2007 20:04:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 26 Jan 2007 20:04:49 -0000 Received: (qmail 11598 invoked by uid 500); 26 Jan 2007 20:04:54 -0000 Delivered-To: apmail-apr-commits-archive@apr.apache.org Received: (qmail 11568 invoked by uid 500); 26 Jan 2007 20:04:54 -0000 Mailing-List: contact commits-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: Reply-To: dev@apr.apache.org List-Id: Delivered-To: mailing list commits@apr.apache.org Received: (qmail 11557 invoked by uid 99); 26 Jan 2007 20:04:54 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Jan 2007 12:04:54 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Jan 2007 12:04:47 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id B1F621A981A; Fri, 26 Jan 2007 12:04:27 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r500321 - in /apr/apr/trunk: include/arch/unix/apr_arch_poll_private.h poll/unix/epoll.c Date: Fri, 26 Jan 2007 20:04:27 -0000 To: commits@apr.apache.org From: gregames@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070126200427.B1F621A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gregames Date: Fri Jan 26 12:04:26 2007 New Revision: 500321 URL: http://svn.apache.org/viewvc?view=rev&rev=500321 Log: apr_pollset_remove: speed up the httpd Event MPM when lots of connections are in use epoll/Linux only for now. ./buildconf on FreeBSD (minotaur) spewed tons of errors; hints appreciated Modified: apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h apr/apr/trunk/poll/unix/epoll.c Modified: apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h?view=diff&rev=500321&r1=500320&r2=500321 ============================================================================== --- apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h (original) +++ apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h Fri Jan 26 12:04:26 2007 @@ -91,8 +91,8 @@ typedef struct pfd_elem_t pfd_elem_t; struct pfd_elem_t { - APR_RING_ENTRY(pfd_elem_t) link; apr_pollfd_t pfd; + APR_RING_ENTRY(pfd_elem_t) link; }; #endif Modified: apr/apr/trunk/poll/unix/epoll.c URL: http://svn.apache.org/viewvc/apr/apr/trunk/poll/unix/epoll.c?view=diff&rev=500321&r1=500320&r2=500321 ============================================================================== --- apr/apr/trunk/poll/unix/epoll.c (original) +++ apr/apr/trunk/poll/unix/epoll.c Fri Jan 26 12:04:26 2007 @@ -219,18 +219,10 @@ pollset_lock_rings(); if (!APR_RING_EMPTY(&(pollset->query_ring), pfd_elem_t, link)) { - for (ep = APR_RING_FIRST(&(pollset->query_ring)); - ep != APR_RING_SENTINEL(&(pollset->query_ring), - pfd_elem_t, link); - ep = APR_RING_NEXT(ep, link)) { + ep = (pfd_elem_t *) descriptor; - if (descriptor->desc.s == ep->pfd.desc.s) { - APR_RING_REMOVE(ep, link); - APR_RING_INSERT_TAIL(&(pollset->dead_ring), - ep, pfd_elem_t, link); - break; - } - } + APR_RING_REMOVE(ep, link); + APR_RING_INSERT_TAIL(&(pollset->dead_ring), ep, pfd_elem_t, link); } pollset_unlock_rings();