You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Robert S. Thau" <rs...@ai.mit.edu> on 1996/06/05 23:00:52 UTC

YA threaded server snapshot.

I've just put up another snapshot of my threaded Apache at

   ftp://ftp.ai.mit.edu/pub/users/rst/apache-XX.tar.gz

This code has now been running and more or less stable on
www.ai.mit.edu for more than a week; it's probably in fit condition
for other people to start experimenting with (though I'm only really
able to give it the acid test on SunOS, and it's always possible that
problems will come up on other systems).

This snapshot fixes chunked encoding, and implements the HTTP/1.1
draft 4 rules for managing persistent connections (that's my story,
and I'm sticking to it at least until Alexei tells me where I screwed
up this time).

The other new thing with this release is beginning gestures towards
a decent debugging environment, viz. gdb macros which define the
"athreads" and athread" commands.  The latter forces the code into a
breakpoint on the stack of a specific thread the next time the
scheduler reaches the top of its main loop --- this helps you to
figure out why it's blocked.  The former gives you a summary of all
running threads, roughly like so:

(gdb) athreads
 TID WAITFOR WAIT-ARG   NAME
   0 select  -          child_main --- handle new connections and timeouts
 241 write   19         GET /people/spraxlo/g/Claudia.300.gif HTTP/1.0
 239 read    17         Awaiting new transaction
 238 read    16         Awaiting new transaction
 237 read    13         Awaiting new transaction
 236 read    7          Awaiting new transaction
 232 write   8          GET /people/sodabot/logo.gif HTTP/1.0
 227 notify  DNS        GET /stocks/prices.html HTTP/1.0
 218 write   10         GET /people/laurel/OLD-Bmt-talk/msg00331.html HTTP/1.0
   4 read    9          DNS packet receiver
(gdb) 

Have fun,

rst