=head1 NAME

MPMs - Multi-Processing Model Modules

=head1 Description

Discover what are the available MPMs and how they work with mod_perl.

META: This doc is under construction. Owners are wanted.

=head1 MPMs Overview

=head1 The Worker MPM

META: incomplete

You can test whether running under threaded env via: C<?>

  #ifdef USE_ITHREADS
  /* whatever */
  #endif

When the server is running under the threaded mpm
C<scfg-E<gt>threaded_mpm> is set to true.

Caveats:

All per-server data is shared between threads, regardless of locking,
changing the value of something like ap_document_root changes it for
all threads.  Not just the current process/request, the way it was in
1.3.  So we can't really support modification of things like
ap_document_root at request time, unless the mpm is prefork.  we could
support modification of modperl per-server data by using
r-E<gt>request_config in the same way push_handlers et al is
implemented.  But it is not possible to use this approach for anything
outside of modperl (ap_document_root for example).

=head1 The Prefork MPM

META: incomplete

=head1 Maintainers

Maintainer is the person(s) you should contact with updates,
corrections and patches.

=over

=item *

Stas Bekman E<lt>stas (at) stason.orgE<gt>

=back


=head1 Authors

=over

=item *

Stas Bekman E<lt>stas (at) stason.orgE<gt>

=back

Only the major authors are listed above. For contributors see the
Changes file.

=cut

