At 01:33 PM 9/20/2004, Jess Holle wrote:
>Brad Nicholes wrote:
>>>
>>>I'm still wondering if we shouldn't just stick with the local 
>>>read/write 
>>>lock on Windows and other single child MPMs (NetWare?) as this should
>>>allow better throughput in such cases and yet be safe, right?  In
>>>fact, 
>>
>>Actually on NetWare this is a non-issue.  On NetWare everything is
>>global (memory, locks, etc.), so there is no difference between a global
>>mutex and a local one (other than previously we were using reader/writer
>>locks rather than mutexes).

It's similar for Win32 - except single process can be implemented
as critical sections.

>On the contrary, if our #ifdef'ing is localized, I believe that doing this on a 
>per-platform or per-MPM (or better yet a #ifdef HAS_MULTIPLE_WORKER_PROCESSES or some 
>such) basis to maximize performance would be worthwhile.

-1 Veto (not a vote) to test platforms.

However, ap_mpm_query() will let you determine if you are running
on a single or multi-process mpm, a threaded or non-threaded mpm,
etc.  If you want to test mpm behavior and make selections based
on those characteristics, I'd see no issues with that.

>To scatter such #ifdef's throughout the whole module would be a maintenance 
>nightmare, of course.

Exactly.  Who two years from now will be able to follow the code?
httpd-1.3 was abandoned (effectively replaced) because of main().

At some point, you break down and create two seperate modules for
different conditions, witness mod_cgi v.s. mod_cgid.

Bill


Reply via email to