Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 138 invoked by uid 6000); 11 Feb 2000 04:20:37 -0000 Received: (qmail 131 invoked from network); 11 Feb 2000 04:20:35 -0000 Received: from twinlark.arctic.org (204.107.140.52) by taz.hyperreal.org with SMTP; 11 Feb 2000 04:20:35 -0000 Received: (qmail 2276 invoked by uid 500); 11 Feb 2000 04:20:34 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 11 Feb 2000 04:20:34 -0000 Date: Thu, 10 Feb 2000 20:20:34 -0800 (PST) From: Dean Gaudet To: new-httpd@apache.org Subject: Re: Bug Report 5671 - CGI Deadlock In-Reply-To: <20000207081012.A38553@engelschall.com> Message-ID: X-comment: visit http://www.arctic.org/~dean/legal for information regarding copyright and disclaimer. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org Status: O On Mon, 7 Feb 2000, Ralf S. Engelschall wrote: > No, the old BIND8 eventlib seems to be no longer part of BIND9. At least > I've poked around in the source for an hour at the weekend and wasn't > able to find it. Instead it seems BIND9 now goes the multi-threading way > of Pthreads. Dean, where can I find the async I/O abstraction stuff in > BIND9? I want to poke around in it, too. it uses threads so that it can take advantage of SMP. i still haven't quite wrapped my head around it, but here's the gist of what i understand: a "task" is basically an event queue. the task manager runs one thread per cpu so that all cpus can do computing. the socket manager, which generates socket i/o events, adds one more thread for doing select(). the timer manager, which generates timer events, adds another thread for time events. it looks like tasks let you pull some nice tricks to avoid the need for mutexes in some types of code. alternately you can just use tasks like you would the main thread of control in bind8's eventlib -- have one task per cpu. there's a bunch of other goodies in libisc. clear overlap with some of our apache library routines. there's a buffer and bufferlist abstraction which makes it look like you might be able to do zero-copy i/o, but i haven't looked into them further. i'm still trying to figure out what program to write with it first :) won't know how good it is until i've got something to play with. Dean