httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <dgau...@arctic.org>
Subject Re: Bug Report 5671 - CGI Deadlock
Date Fri, 11 Feb 2000 04:20:34 GMT


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


Mime
View raw message