Hi Fred,
mostly yes, but you could write modules, that break this assumption. An
indication is mod_cgi, which exists as mod_cgi and mod_cgid. Another
hint into this direction is, that httpd doesn't provide a clean way of
exchanging MPMs after compilation.
In general it is better to compile the module against the MPM you want
to use unless you know the code of the module good enough to judge about
its MPM independancy.
Regards,
Rainer
fredk2 wrote:
Many thanks for your reply.
Is it always implied that if an apache module is deemed 'thread safe' it
also implies that it will work in "prefork" environment maybe at the cost of
raw performance ?
Thanks again - Fred
Rainer Jung-3 wrote:
fredk2 wrote:
Hi,
The documentation for mod_jk (eg. version 1.2.25) about --enable-prefork
says:
"In case you build mod_jk for a multi-threaded Apache httpd 2.0/2.2 MPM
(Multi-Processing Module), some areas of mod_jk code need to be
synchronized
to make it thread-safe. Because configure can not easily detect, whether
your are using a multi-threaded MPM, mod_jk by default is always build
thread-safe for Apache httpd 2.0/2.2. If you are sure, that your MPM is
not
multi-threaded, you can use "--enable-prefork" to force the removal of
the
synchronization code (thus increasing performance a bit). For instance,
the
prefork MPM is not multi-threaded. For Apache httpd 1.3 this flag will be
set automatically."
If you specify apxs, doesn't it require a config_vars.mk which has a
value
pair MPM_NAME = prefork and thus configure could know that prefork was
used?
Alternatively assuming that apxs is in the same directory then 'httpd -V'
could tell that
"Server MPM: Prefork"
You are right: "apxs -q MPM_NAME" would do the trick. I didn't find that
one, thanks. On the other hand, we would still need to manage a list of
MPMs (which MPM on which platform is single-threaded) and there is some
danger, that people have more than one mpm installed (like on many linux
distros) and compile against prefork, later use against worker. All in
all I'm still in favor of building thread safe by default and only when
explicitely requested removing the thread synchronization.
The question I have: if the Apache httpd v2.2 is prefork and the mod_jk
is
compiled "default threaded", are there any potential instabilities? (on
Solaris and Linux)
No, not that we aware of any. On both platforms, the default was
building thread safe for a long time. We use pthread mutexes and no
problems have been reported with those.
Many thanks - Fred
Regards,
Rainer
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]