You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Doug MacEachern <do...@opengroup.org> on 1997/05/15 15:33:53 UTC

Re: Info on Multithreading and Apche for NT

Giovanni Maruzzelli <ma...@matrice.it> wrote:

> Hi,
> 
> I would like to have some pointers about the various multithreading and NT
> efforts that was done or in the make.
> 
> I've got the docs from http://www.osf.org/~dougm/apache-2.0/, and I've
> read that there's a rst work on thread, but don't know where.
> 
> Also, there was verious NT ports around. Where can I found info about?

The work I've done so far has been put into a package I'm calling
'athreads'.  'a' can stand for 'apache' or 'abstract', which ever you 
like.  There's a Win32 layer in there and the package is not directly
tied to apache, I can tar it up soon if you'd like to try it out with
a simple NT app. 

On another note, I've modified 1.2b11-dev to use 'athreads', which
currently fires off MaxStartServers number of threads when the server
starts, each running child_main.  So, a single process with say, 10
threads.  My test was browsing a powerpoint-converted-to-html set of
documents, with netscape cache flushed and off.  If you haven't seen
one of these, there's one html doc with 5 or so images embedded.  So
far I've only modified http_main.c and it works, but not everytime.  I
don't always get every image, so i/o needs some work.  I know other
areas will need some re-working too, but so far, with little
modification to apache itself, things look quite promising.

-Doug
 
> ciao,
> 
> -giovanni
> 
> 
> 
>  
>           ***********************************************
>           *                                             *
>           *                                             *
>           *    MATRICE srl                              *
>           *    Information Technology Solutions         *
>           *                                             *
>           *    Giovanni Maruzzelli                      *
>           *                                             *
>           *                                             *
>           *                                             *
>           *    maruzz@matrice.it                        *
>           *    http://www.matrice.it                    *
>           ***********************************************
> 
> 
> 

Re: Info on Multithreading and Apche for NT

Posted by Paul Sutton <pa...@ukweb.com>.
On Thu, 15 May 1997, Doug MacEachern wrote:
> The work I've done so far has been put into a package I'm calling
> 'athreads'.  'a' can stand for 'apache' or 'abstract', which ever you 
> like.  There's a Win32 layer in there and the package is not directly
> tied to apache, I can tar it up soon if you'd like to try it out with
> a simple NT app. 

Sounds interesting - can you drop a tar off somewhere?

At some point, all the OS specific code in Apache needs to be abstracted
so that there is a common code base across all supported platforms (this
is in the plan for 2.0, but experience in developing Apache for NT will
clearly have an influence on the level of abstraction needed). Threads are
one (important) area where we need an abstraction - not only to support
threads on various platforms, but also to support the existing pre-forking
model on platforms without thread support (or implement fake threads). 

There are also other areas where abstraction is needed, for example: file
name processing (to handle c:\ stuff, etc), process forking/spawning
(cgi), user/group info, etc etc. 

Of course, the immediate plan is to convert 1.2 to NT, before wholesale
abstraction, but it would be nice to implement 1.2 using tools that can
carry forward to 2.0. 

There are three OS's we can abstract for: 

  Unix
  OS/2
  Windows NT (95?)

(OS/2 is already supported in Apache, but by a fairly large number of
#ifdef EMX sections. The abstract layer should be able to remove all
these). 

Is there a good reason for specifying NT only? Should we aim for Windows
NT _and_ 95? (With, possibly, NT specific extensions such as services). 
Is it worth bothering with abstraction for 1.2?

//pcs