Return-Path: owner-new-httpd Received: by taz.hyperreal.com (8.6.10/8.6.5) id NAA15172; Thu, 16 Mar 1995 13:16:15 -0800 Received: from ooo.lanl.gov by taz.hyperreal.com (8.6.10/8.6.5) with SMTP id NAA15167; Thu, 16 Mar 1995 13:16:12 -0800 Received: by ooo.lanl.gov (1.38.193.4/16.2) id AA11191; Thu, 16 Mar 1995 14:16:02 -0700 From: Rob Hartill Message-Id: <9503162116.AA11191@ooo.lanl.gov> Subject: Re: non-forking again (NCSA 1.4 approach) To: new-httpd@hyperreal.com Date: Thu, 16 Mar 95 14:16:02 MST In-Reply-To: <199503160735.BAA26199@fiction.isdn.uiuc.edu>; from "Brandon Long" at Mar 16, 95 1:35 am Organization: Theoretical Division, T-8. Los Alamos National Laboratory Address: LANL Theoretical Divi' T-8, MS B285, P.O Box 1663, Los Alamos NM 87545 Fax: (505) 667 5585 Phone: (505) 665-2280 or 667-5336 (T-8 Secretary) Mailer: Elm [revision: 70.85] Sender: owner-new-httpd@hyperreal.com Precedence: bulk Reply-To: new-httpd@hyperreal.com Brandon Long wrote, > One other item of note: we don't have multiple children waiting on > accept, though its been batted around. I had no idea what it would > do. Currently, we use file descriptor passing to pass the accepted > socket from the 'root' process to a 'child.' The method I prototyped the other day has one child process doing an accept(*) - so as soon as the connection is made, the child is ready to go. If the parent does the accept, then it has to wait on accept, then tell a child (does it have to use an algorithm here to pick one?) about the connection - this must surely impact on performance. My setup has all the serialization being performed before a call to accept, so a child is always ready for a connection. As soon as the accept is made, the child sends the parent a non-blocking message to tell it that the 'accept' is now history, and that the next child can 'accept' a connection. (*) is easily switched to multiple processes 'accepting' - with no need for a parent to act as a serializer - that I guess should be a system dependent config setting. rob