- NAME
- Description
- MPMs Overview
- The Worker MPM
- The Prefork MPM
- The Event MPM
- Maintainers
- Authors

# NAME

MPMs - Multi-Processing Model Modules

# Description

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

META: This doc is under construction. Owners are wanted. -- pgollucci volunteering

# MPMs Overview

# The Worker MPM

META: incomplete

You can test whether running under threaded env via: `?`

    #ifdef USE_ITHREADS
    /* whatever */
    #endif

When the server is running under the threaded mpm `scfg->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->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).

# The Prefork MPM

META: incomplete

# The Event MPM

# Maintainers

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

- Philip M. Gollucci <pgollucci (at) p6m7g8.com>

# Authors

- Stas Bekman [http://stason.org/] Philip M. Gollucci <pgollucci (at) p6m7g8.com>

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