httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <>
Subject [PATCH] select-thread-hybrid-01.patch
Date Mon, 17 May 1999 16:30:37 GMT

OK I've managed to serve a few requests with this, so it's time to post ;) 


Get and build bind-8.x (I'm using bind-8.2).  You want the wonderful
eventlib which the ISC folks have written for us, and released under a
BSD-style license.  This is a convenient select/poll wrapper which
provides timer and fd events.  Paul's comments say he had inputs from lots
of folks -- including the X folks... so I'm guessing Jim Gettys' comments
were taken into account... and so I'm just trusting the code rather than
looking at it.

(Redhat users:  I tried using the installed bind-devel kit, but it doesn't
work, something is bogus about their library.)

Get apache-apr... apply the patch. 

Use some variant of the config.status below to configure the server. 


- I tore up http_main.c.  Just completely gutted it.  I got tired of
stubbing out things.  We can add things back incrementally. 

- no signals, no restart, no multiple processes... 

- no scoreboard -- major rework needed here.  We need to divorce ourselves
from the concept of a one-to-one mapping between threads/processes and
requests.  We'll have connections which are being handled by the event
loop.  I think the more appropriate thing is to split the scoreboard into
a "worker" section, and a "connection" section.  But even still -- we can
potentially have thousands of connections in progress... that's a lot of
shared memory to chew up (shared mem is not pageable on many systems).  A
better solution is required -- such as building the scoreboard only when
serving /server-status. 

- It's similar to one of manoj/ryan's older servers with the fdqueue at
the moment, but using eventlib instead... and it should show how I think
we should pass events back and forth between workers and event thread.


##  config.status -- APACI auto-generated configuration restore script
##  Use this shell script to re-run the APACI configure script for
##  restoring your configuration. Additional parameters can be supplied.

CFLAGS="-g -O2 -Wall" \
LIBS="/home/dgaudet/ap/bind/src/lib/libbind_r.a" \
INCLUDES="-I/home/dgaudet/ap/bind/src/include" \
./configure \
"--with-layout=Apache" \
"--prefix=/home/dgaudet/ev" \
"--disable-module=status" \

View raw message