httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <>
Subject RE: cvs commit: apache-2.0/src/os/win32 main_win32.c os.h service.c service.h
Date Wed, 17 May 2000 04:49:52 GMT
> From: Tim Costello []
> Sent: Wednesday, May 17, 2000 10:25 AM
> Good work with these changes - they should make Windows 9x 
> users a bit more happy! 

I wish... this is actually quite clean for NT, still piss poor
for 9x, mostly because 9x is a piss poor OS (esp console apps).
I'm trying a Hook procedure to trap the close/shutdown/logoff
events, no idea yet if that will work (devel is faster in NT
but these changes can't even begin to be tested on this side.)

> The change to add a function prototype to http_config.h was 
> good, but can it be a separate patch next time? 

Guilty as charged... I try to do 'cleanups' seperately from work,
but two slipped by, this and... 

> One more serious change is the one below:
> > Index: os.h
> ..
> >   -#define HAVE_SENDFILE
> Why?

Because I screwed up and have reversed that change out.  It's a
prototype of some code Bill and I are looking at, we need some
way to toggle the SENDFILE at runtime.  No clean solution yet, 
so none of that -should- have been committed.

> >     2) Isolation can't be complete, we need to know when the mpm is
> >        fully initialized.  A new pointer to a no-arg function returning
> >        void is provided for this purpose, ap_mpm_init_complete.  It is
> >        only called if overridden with a non-NULL value prior to invoking
> >        apache_main.
> Why can't this call happen from within ap_mpm_run (just before master_main is
> called) in winnt.c? This would guarantee that it was called once per process
> and only for the parent process. 

For no particular reason, other than other code to state -we're finished-
seemed to be localized to that block.  But we must assure the events for
shutdown et. al. are already created.  The code was called the moment those
were defined.

> If it must be done from the post config hook, can the NULL assignments happen 
> there too (ie. just after the function is called)?

No argument here - there is another layer of Win9x stuff to go in... I will
fix with that update unless you beat me to it.

> >   Index: winnt.c
> ..
> >   +typedef void (CALLBACK *ap_completion_t)();
> Can this go into a header file? The same code has been put 
> into winnt.c, main_win32.c and service.c.

Guilty, I'm just trying to figure how to cleanly localize it all.  When we
are finished (if noone screams to loudly at the reorg), I will assure that
all the Apache.exe-only declares have moved into Apache.exe only headers.
> >   -#include "service.h"
> >   +//#include "service.h"
> Why not just delete this?

Because I'm hacking, and haven't finished.  Yes it can go.

> Same question for calls to service_set_status, etc. that were commented out. 

Different answer - the logic there made no sense before, but I've left them
as placeholders to remind anyone (esp. Bill) what we were already doing.
I hope they go away soon (thus the c++ style rather than c, which could sit
there forever and not be noticed.)

> >   Index: service.c
> ..
> >   +    /* Free the kernel library */
> >   +    // Worthless, methinks, since it won't be reclaimed
> >   +    // FreeLibrary(hkernel);
> Why not just call it? It would be one line instead of three 
> and correct. The comments add no value here. 

Again, hacking, I promise anything in c++ style comments is destined
for the bit bucket.

> >   +    /* We have to quit right here to avoid an invalid 
> page fault */
> >   +    // But, this is worth experimenting with!
> >   +    return (globdat.exit_status);
> Why is it necessary to quit (ie. why do you get an invalid 
> page fault)? What 
> is "quitting" in this context? What exactly is worth 
> experimenting with? 

Ok... this is code culled from others, esp JJK, and I've left relevant
notes on their experiences.  I'm hoping they were isolated to the exact
manner in which this code was originally proposed.  I've whacked it
considerably since then, but left a few small reminders.  This had
been an 'exit(globdat.exit_status)' (ugh!).

Tim, thanks for your insightful (if not sometimes a bit petty) and very
thorough comments!  As I've said... it's a work in progress, and will
be hashed out and clarified.

View raw message