On Oct 29, 2008, at 5:36 PM, Paul Querna wrote:
Akins, Brian wrote:
One of the things I've noticed on a practical level, is that forked
children
in worker wind up being "linearized" within themselves to some
extent.
Think of how the buffered logs work in mod_log_config (one buffer
protected
by a mutex). (I can't think of the correct term for it right now.
Basically
every thread is waiting on the same mutex eventually.) This is
seen in
other modules...
The fork gets around this somewhat, as there are multiple mutexes
independently locked/unlocked.
I don't think the intention would be to use a single process on
Unix -- we would still spawn multiple children -- they would just be
created using fork+exec of the httpd binary, rather than just fork.
Why? The most painful part is the actually forking, so why
make it worse with tagging an exec with it? IMO, when Apache needs
to fork (except for during startup), the assumption should be
Because We Are Busy, and should be as efficient and quick as
possible...