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